using Exferia_Aplicacion.Calculos.VentasCompras;
using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Modelos_Generales;
using Exferia_EntityFramework;
using Exferia_General;
using Exferia_TraspasoDatos._0_Modelos;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Exferia_Aplicacion.General.Enumerados;

namespace Exferia_TraspasoDatos.General
{
    public class Funciones_Insertar
    {
        #region Diccionarios

        //AGD
        private Dictionary<string, long> g_dct_ids_AGD_Citas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_AGD_Citas_Articulos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_AGD_Citas_Clientes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_AGD_Citas_Demandados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_AGD_Citas_Asesores = new Dictionary<string, long>();

        //COM
        private Dictionary<string, long> g_dct_ids_COM_DevolucionesPagos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercancia = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_FacturasCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_FacturasCabeceraAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_FacturasCabeceraResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_Pagos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraCabeceraAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraLineaTarifasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromocionesCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_COM_Vencimientos = new Dictionary<string, long>();

        //CTA
        private Dictionary<string, long> g_dct_ids_CTA_AmortizacionesCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_ClavesAnaliticas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_Conceptos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_Departamentos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_DiarioCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_Inmovilizados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_InmovilizadosMotivosBaja = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_Mayor = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_MayorAuxiliar = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PlanGeneralContable = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosAuxiliares = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosConceptos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosCuentas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosDepartamentos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosFechas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosFicheros = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosImportes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_PredefinidosPorDefecto = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_VolcadoCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTA_VolcadoLineas = new Dictionary<string, long>();

        //CTP
        private Dictionary<string, long> g_dct_ids_CTP_Contratos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTP_CPV = new Dictionary<string, long>();

        //CTG
        private Dictionary<string, long> g_dct_ids_CTG_Expedientes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_CTG_Conceptos = new Dictionary<string, long>();

        //EPD
        private Dictionary<string, long> g_dct_ids_EPD_Actores = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Asesores = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Citaciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Demandados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Expedientes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Juzgados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Materias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_EPD_Procedimientos = new Dictionary<string, long>();

        //GEN
        private Dictionary<string, long> g_dct_ids_GEN_Administraciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Almacenes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Delegaciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_EjerciciosActivos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Empresas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_EntidadesBancarias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_ImpuestosCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_ImpuestosLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_ImpuestosTipos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Monedas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Municipios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Paises = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Poblaciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Provincias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_RetencionesTipos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Retenciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_TiposCompraVenta = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_TiposVias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_GEN_Terminales = new Dictionary<string, long>();

        //INV
        private Dictionary<string, long> g_dct_ids_INV_InventarioCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_InventarioLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_InventarioLineaDetalle = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_InventarioLineaTrazabilidad = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_VariacionExistenciaCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_VariacionExistenciaLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_VariacionExistenciaLineaDetalle = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad = new Dictionary<string, long>();

        //MAE
        private Dictionary<string, long> g_dct_ids_MAE_AbonosTipos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesArticulosCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesArticulosLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesArticulosLineaFoto = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesClientesCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesClientesLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesProveedoresCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_AgrupacionesProveedoresLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Articulos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosCodigosBarras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosComodin = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosEmbalajes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ArticulosTotalizados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Articulos_Trazabilidad = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Cargos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_CategoriasProfesionales = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Clientes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ClientesAgrupacionesClientesLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_CuentasbancariasSEPACobros = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_CuentasbancariasSEPAPagos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_DepartamentosExternos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Embalajes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Empleados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_FormasPago = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_FormasPagoDetalle = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Medidas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_MotivosAltaBaja = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_NomenclaturasPrecios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Prioridades = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Proveedores = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Tesorerias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_TelefonosTipos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_TiposPagos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_TiposProductos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_TiposVariacionExistencias = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Ubicaciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_UbicacionesPerfiles = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MAE_Vendedores = new Dictionary<string, long>();

        //MYT
        private Dictionary<string, long> g_dct_ids_MYT_Administradores = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_EmpresasInstaladoras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_InstalacionesUsos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_InstalacionesEstados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_TiposContratos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_Tecnicos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_PlanMantenimientosCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_PlanMantenimientosLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_InstalacionesCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_InstalacionesLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_Partes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_PartesTipos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_PartesEstados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_Inspecciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_Previsiones_Cabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_PartesLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_Protocolos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_ProtocolosPreguntas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_ProtocolosRespuestas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_EstructurasPartesPeticionDatos_Secciones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_EstructurasPartesPeticionDatos_Preguntas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas = new Dictionary<string, long>();

        //PRV
        private Dictionary<string, long> g_dct_ids_PRV_RecepcionFicheros = new Dictionary<string, long>();

        //SRV
        private Dictionary<string, long> g_dct_ids_SRV_RelacionClienteProveedor = new Dictionary<string, long>();

        //VTA
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesCabecerasAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesCabecerasDatosViaje = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesCabecerasResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesFacturasLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesFacturasLineasComentarios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_Cobros = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_DevolucionesCobros = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_FacturasCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_FacturasCabecerasAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_FacturasCabecerasDatosViaje = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_FacturasCabecerasResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosCabecerasAnexos = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosCabecerasResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosLineasComentarios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosLineasTarifasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosCabeceras = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosCabecerasResumen = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosLineasComentarios = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosLineasTarifasPromociones = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_RemesasAcumulados = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_RemesasCabecera = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_RemesasLineas = new Dictionary<string, long>();
        private Dictionary<string, long> g_dct_ids_VTA_Vencimientos = new Dictionary<string, long>();

        #endregion

        public bool Abrir_Conexion()
        {
            Variables_TraspasoDatos.G_OBJ_CONEXION = null;
            bool bol_Contecto = false;

            try
            {
                //Conexion SqlServer
                string str_ConectionString = "server=" + Variables.G_STR_CONEXION_SERVIDOR + ";database=" + Variables.G_STR_CONEXION_BASEDATOS + ";User Id=" + Variables.G_STR_CONEXION_USUARIO + ";Password=" + Variables.G_STR_CONEXION_CLAVE + ";";

                //BORRAR
                //Control_Errores.Errores_Log(str_ConectionString, nameof(Funciones_Insertar) + "/" + nameof(Abrir_Conexion));

                Variables_TraspasoDatos.G_OBJ_CONEXION = new SqlConnection(str_ConectionString);

                //Abrimos la conexion
                Variables_TraspasoDatos.G_OBJ_CONEXION.Open();

                //si la conexion no es nula
                if (Variables_TraspasoDatos.G_OBJ_CONEXION != null &&
                    Variables_TraspasoDatos.G_OBJ_CONEXION.State == ConnectionState.Open)
                {
                    bol_Contecto = true;
                }

            }
            catch(Exception ex)
            {
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Abrir_Conexion), true);
                //Termino la conexion
                Variables_TraspasoDatos.G_OBJ_CONEXION.Close();
                Variables_TraspasoDatos.G_OBJ_CONEXION.Dispose();
            }

            return bol_Contecto;
        }

        public void Cerrar_Conexion()
        {
            try
            {
                //si la conexion no es nula
                if (Variables_TraspasoDatos.G_OBJ_CONEXION != null &&
                    Variables_TraspasoDatos.G_OBJ_CONEXION.State == ConnectionState.Open)
                {
                    Variables_TraspasoDatos.G_OBJ_CONEXION.Close();
                    Variables_TraspasoDatos.G_OBJ_CONEXION.Dispose();
                }

            }
            catch (Exception ex)
            {
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Cerrar_Conexion), true);
                //Termino la conexion
                Variables_TraspasoDatos.G_OBJ_CONEXION.Close();
                Variables_TraspasoDatos.G_OBJ_CONEXION.Dispose();
            }
        }

        public void Vaciar_Diccionarios()
        {
            //AGD
            g_dct_ids_AGD_Citas.Clear();
            g_dct_ids_AGD_Citas_Articulos.Clear();
            g_dct_ids_AGD_Citas_Clientes.Clear();
            g_dct_ids_AGD_Citas_Demandados.Clear();
            g_dct_ids_AGD_Citas_Asesores.Clear();

            //COM
            g_dct_ids_COM_DevolucionesPagos.Clear();
            g_dct_ids_COM_EntradasMercancia.Clear();
            g_dct_ids_COM_EntradasMercanciaAnexos.Clear();
            g_dct_ids_COM_EntradasMercanciaLineas.Clear();
            g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad.Clear();
            g_dct_ids_COM_EntradasMercanciaResumen.Clear();
            g_dct_ids_COM_EntradasMercanciaCondicionantes.Clear();
            g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.Clear();
            g_dct_ids_COM_FacturasCabecera.Clear();
            g_dct_ids_COM_FacturasCabeceraAnexos.Clear();
            g_dct_ids_COM_FacturasCabeceraResumen.Clear();
            g_dct_ids_COM_Pagos.Clear();
            g_dct_ids_COM_PedidosCompraCabecera.Clear();
            g_dct_ids_COM_PedidosCompraCabeceraAnexos.Clear();
            g_dct_ids_COM_PedidosCompraResumen.Clear();
            g_dct_ids_COM_PedidosCompraLinea.Clear();
            g_dct_ids_COM_PedidosCompraLineaTarifasPromociones.Clear();
            g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes.Clear();
            g_dct_ids_COM_SolicitudesOfertaCabecera.Clear();
            g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos.Clear();
            g_dct_ids_COM_SolicitudesOfertaResumen.Clear();
            g_dct_ids_COM_SolicitudesOfertaLinea.Clear();
            g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones.Clear();
            g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromocionesCondicionantes.Clear();
            g_dct_ids_COM_Vencimientos.Clear();

            //CTA
            g_dct_ids_CTA_AmortizacionesCabecera.Clear();
            g_dct_ids_CTA_ClavesAnaliticas.Clear();
            g_dct_ids_CTA_Conceptos.Clear();
            g_dct_ids_CTA_Departamentos.Clear();
            g_dct_ids_CTA_DiarioCabecera.Clear();
            g_dct_ids_CTA_Inmovilizados.Clear();
            g_dct_ids_CTA_InmovilizadosMotivosBaja.Clear();
            g_dct_ids_CTA_Mayor.Clear();
            g_dct_ids_CTA_MayorAuxiliar.Clear();
            g_dct_ids_CTA_PlanGeneralContable.Clear();
            g_dct_ids_CTA_PredefinidosAuxiliares.Clear();
            g_dct_ids_CTA_PredefinidosCabeceras.Clear();
            g_dct_ids_CTA_PredefinidosConceptos.Clear();
            g_dct_ids_CTA_PredefinidosCuentas.Clear();
            g_dct_ids_CTA_PredefinidosDepartamentos.Clear();
            g_dct_ids_CTA_PredefinidosFechas.Clear();
            g_dct_ids_CTA_PredefinidosFicheros.Clear();
            g_dct_ids_CTA_PredefinidosImportes.Clear();
            g_dct_ids_CTA_PredefinidosLineas.Clear();
            g_dct_ids_CTA_PredefinidosPorDefecto.Clear();
            g_dct_ids_CTA_VolcadoCabecera.Clear();
            g_dct_ids_CTA_VolcadoLineas.Clear();

            //CTP
            g_dct_ids_CTP_Contratos.Clear();
            g_dct_ids_CTP_CPV.Clear();

            //EPD
            g_dct_ids_EPD_Actores.Clear();
            g_dct_ids_EPD_Asesores.Clear();
            g_dct_ids_EPD_Citaciones.Clear();
            g_dct_ids_EPD_Demandados.Clear();
            g_dct_ids_EPD_Expedientes.Clear();
            g_dct_ids_EPD_Juzgados.Clear();
            g_dct_ids_EPD_Materias.Clear();
            g_dct_ids_EPD_Procedimientos.Clear();

            //GEN
            g_dct_ids_GEN_Administraciones.Clear();
            g_dct_ids_GEN_Almacenes.Clear();
            g_dct_ids_GEN_Delegaciones.Clear();
            g_dct_ids_GEN_EjerciciosActivos.Clear();
            g_dct_ids_GEN_Empresas.Clear();
            g_dct_ids_GEN_EntidadesBancarias.Clear();
            g_dct_ids_GEN_ImpuestosCabecera.Clear();
            g_dct_ids_GEN_ImpuestosLineas.Clear();
            g_dct_ids_GEN_ImpuestosTipos.Clear();
            g_dct_ids_GEN_Monedas.Clear();
            g_dct_ids_GEN_Municipios.Clear();
            g_dct_ids_GEN_Paises.Clear();
            g_dct_ids_GEN_Poblaciones.Clear();
            g_dct_ids_GEN_Provincias.Clear();
            g_dct_ids_GEN_RetencionesTipos.Clear();
            g_dct_ids_GEN_Retenciones.Clear();
            g_dct_ids_GEN_TiposCompraVenta.Clear();
            g_dct_ids_GEN_TiposVias.Clear();
            g_dct_ids_GEN_Terminales.Clear();

            //INV
            g_dct_ids_INV_InventarioCabecera.Clear();
            g_dct_ids_INV_InventarioLinea.Clear();
            g_dct_ids_INV_InventarioLineaDetalle.Clear();
            g_dct_ids_INV_InventarioLineaTrazabilidad.Clear();
            g_dct_ids_INV_VariacionExistenciaCabecera.Clear();
            g_dct_ids_INV_VariacionExistenciaLinea.Clear();
            g_dct_ids_INV_VariacionExistenciaLineaDetalle.Clear();
            g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad.Clear();

            //MAE
            g_dct_ids_MAE_AbonosTipos.Clear();
            g_dct_ids_MAE_AgrupacionesArticulosCabecera.Clear();
            g_dct_ids_MAE_AgrupacionesArticulosLinea.Clear();
            g_dct_ids_MAE_AgrupacionesArticulosLineaFoto.Clear();
            g_dct_ids_MAE_AgrupacionesClientesCabecera.Clear();
            g_dct_ids_MAE_AgrupacionesClientesLinea.Clear();
            g_dct_ids_MAE_AgrupacionesProveedoresCabecera.Clear();
            g_dct_ids_MAE_AgrupacionesProveedoresLinea.Clear();
            g_dct_ids_MAE_Articulos.Clear();
            g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea.Clear();
            g_dct_ids_MAE_ArticulosCodigosBarras.Clear();
            g_dct_ids_MAE_ArticulosComodin.Clear();
            g_dct_ids_MAE_ArticulosEmbalajes.Clear();
            g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios.Clear();
            g_dct_ids_MAE_ArticulosTotalizados.Clear();
            g_dct_ids_MAE_Articulos_Trazabilidad.Clear();
            g_dct_ids_MAE_Cargos.Clear();
            g_dct_ids_MAE_CategoriasProfesionales.Clear();
            g_dct_ids_MAE_Clientes.Clear();
            g_dct_ids_MAE_ClientesAgrupacionesClientesLinea.Clear();
            g_dct_ids_MAE_CuentasbancariasSEPACobros.Clear();
            g_dct_ids_MAE_CuentasbancariasSEPAPagos.Clear();
            g_dct_ids_MAE_DepartamentosExternos.Clear();
            g_dct_ids_MAE_Embalajes.Clear();
            g_dct_ids_MAE_Empleados.Clear();
            g_dct_ids_MAE_FormasPago.Clear();
            g_dct_ids_MAE_FormasPagoDetalle.Clear();
            g_dct_ids_MAE_Medidas.Clear();
            g_dct_ids_MAE_MotivosAltaBaja.Clear();
            g_dct_ids_MAE_NomenclaturasPrecios.Clear();
            g_dct_ids_MAE_Proveedores.Clear();
            g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea.Clear();
            g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.Clear();
            g_dct_ids_MAE_TelefonosTipos.Clear();
            g_dct_ids_MAE_Tesorerias.Clear();
            g_dct_ids_MAE_TiposPagos.Clear();
            g_dct_ids_MAE_TiposProductos.Clear();
            g_dct_ids_MAE_TiposVariacionExistencias.Clear();
            g_dct_ids_MAE_Ubicaciones.Clear();
            g_dct_ids_MAE_UbicacionesPerfiles.Clear();
            g_dct_ids_MAE_Vendedores.Clear();

            //MYT
            g_dct_ids_MYT_Administradores.Clear();
            g_dct_ids_MYT_EmpresasInstaladoras.Clear();
            g_dct_ids_MYT_InstalacionesUsos.Clear();
            g_dct_ids_MYT_InstalacionesEstados.Clear();
            g_dct_ids_MYT_TiposContratos.Clear();
            g_dct_ids_MYT_Tecnicos.Clear();
            g_dct_ids_MYT_PlanMantenimientosCabeceras.Clear();
            g_dct_ids_MYT_PlanMantenimientosLineas.Clear();
            g_dct_ids_MYT_InstalacionesCabecera.Clear();
            g_dct_ids_MYT_InstalacionesLineas.Clear();
            g_dct_ids_MYT_Partes.Clear();
            g_dct_ids_MYT_PartesTipos.Clear();
            g_dct_ids_MYT_PartesEstados.Clear();
            g_dct_ids_MYT_Inspecciones.Clear();
            g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera.Clear();
            g_dct_ids_MYT_Previsiones_Cabecera.Clear();
            g_dct_ids_MYT_PartesLineas.Clear();
            g_dct_ids_MYT_Protocolos.Clear();
            g_dct_ids_MYT_ProtocolosPreguntas.Clear();
            g_dct_ids_MYT_ProtocolosRespuestas.Clear();
            g_dct_ids_MYT_EstructurasPartesPeticionDatos_Secciones.Clear();
            g_dct_ids_MYT_EstructurasPartesPeticionDatos_Preguntas.Clear();
            g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas.Clear();
            //PRV
            g_dct_ids_PRV_RecepcionFicheros.Clear();

            //SRV
            g_dct_ids_SRV_RelacionClienteProveedor.Clear();

            //VTA
            g_dct_ids_VTA_AlbaranesCabeceras.Clear();
            g_dct_ids_VTA_AlbaranesCabecerasAnexos.Clear();
            g_dct_ids_VTA_AlbaranesCabecerasDatosViaje.Clear();
            g_dct_ids_VTA_AlbaranesCabecerasResumen.Clear();
            g_dct_ids_VTA_AlbaranesFacturasLineas.Clear();
            g_dct_ids_VTA_AlbaranesFacturasLineasComentarios.Clear();
            g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.Clear();
            g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes.Clear();
            g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad.Clear();
            g_dct_ids_VTA_Cobros.Clear();
            g_dct_ids_VTA_DevolucionesCobros.Clear();
            g_dct_ids_VTA_FacturasCabeceras.Clear();
            g_dct_ids_VTA_FacturasCabecerasAnexos.Clear();
            g_dct_ids_VTA_FacturasCabecerasDatosViaje.Clear();
            g_dct_ids_VTA_FacturasCabecerasResumen.Clear();
            g_dct_ids_VTA_PedidosCabeceras.Clear();
            g_dct_ids_VTA_PedidosCabecerasAnexos.Clear();
            g_dct_ids_VTA_PedidosCabecerasResumen.Clear();
            g_dct_ids_VTA_PedidosLineas.Clear();
            g_dct_ids_VTA_PedidosLineasComentarios.Clear();
            g_dct_ids_VTA_PedidosLineasTarifasPromociones.Clear();
            g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes.Clear();
            g_dct_ids_VTA_PresupuestosCabeceras.Clear();
            g_dct_ids_VTA_PresupuestosCabecerasResumen.Clear();
            g_dct_ids_VTA_PresupuestosLineas.Clear();
            g_dct_ids_VTA_PresupuestosLineasComentarios.Clear();
            g_dct_ids_VTA_PresupuestosLineasTarifasPromociones.Clear();
            g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes.Clear();
            g_dct_ids_VTA_RemesasAcumulados.Clear();
            g_dct_ids_VTA_RemesasCabecera.Clear();
            g_dct_ids_VTA_RemesasLineas.Clear();
            g_dct_ids_VTA_Vencimientos.Clear();
        }

        public INTERNO_ValorDevuelto_Modelo Insertar(string _str_Consulta_Insertar, object[] _arr_Parametros, SqlConnection _obj_SqlConnection)
        {
            
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            try
            {
                //Tipo de Accion que se va a realizar
                mdl_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_INSERTAR;

                SqlCommand obj_SqlCommand = new SqlCommand(_str_Consulta_Insertar, _obj_SqlConnection);
                obj_SqlCommand.Parameters.AddRange(_arr_Parametros.ToArray());

                //Id de la tabla
                mdl_ValorDevuelto_Modelo.Id = (long)obj_SqlCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                mdl_ValorDevuelto_Modelo.Mensaje = ex.Message;
            }

            return mdl_ValorDevuelto_Modelo;
        }

        public INTERNO_ValorDevuelto_Modelo Insertar_SinID(string _str_Consulta_Insertar, object[] _arr_Parametros, SqlConnection _obj_SqlConnection)
        {

            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            try
            {
                //Tipo de Accion que se va a realizar
                mdl_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_INSERTAR;

                SqlCommand obj_SqlCommand = new SqlCommand(_str_Consulta_Insertar, _obj_SqlConnection);
                obj_SqlCommand.Parameters.AddRange(_arr_Parametros.ToArray());

                obj_SqlCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                mdl_ValorDevuelto_Modelo.Mensaje = ex.Message;
            }

            return mdl_ValorDevuelto_Modelo;
        }

        public INTERNO_ValorDevuelto_Modelo Actualizar(string _str_Consulta_Actualizar, object[] _arr_Parametros, SqlConnection _obj_SqlConnection)
        {

            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            try
            {
                //Tipo de Accion que se va a realizar
                mdl_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_MODIFICAR;

                SqlCommand obj_SqlCommand = new SqlCommand(_str_Consulta_Actualizar, _obj_SqlConnection);
                obj_SqlCommand.Parameters.AddRange(_arr_Parametros.ToArray());

                obj_SqlCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                mdl_ValorDevuelto_Modelo.Mensaje = ex.Message;
            }

            return mdl_ValorDevuelto_Modelo;
        }

        //AGD ################################################
        #region AGD_Citas
        public INTERNO_ValorDevuelto_Modelo Insertar_AGD_Citas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idCita = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
        

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idCita = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        try
                        {
                            //Obtengo el identificador del documento
                            str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                            #region Cabecera

                            if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CITAS_CABECERA))
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                {
                                    lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                                }
                                else
                                {
                                    lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmpresa > -1)
                                    {
                                        g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idEmpresa > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                lng_idEmpresa.ToString().Trim() + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_AGD_Citas.ContainsKey(str_AUX))
                                    {
                                        lng_idCita = g_dct_ids_AGD_Citas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idCita = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_CODIGO,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDDELEGACION,
                                                                                                                    lng_idDelegacion.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_FECHAHORAINICIO,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idCita > -1)
                                        {
                                            g_dct_ids_AGD_Citas.Add(str_AUX, lng_idCita);
                                        }

                                    }

                                    //Si no existe inserto el registro
                                    if (lng_idCita == -1)
                                    {
                                        #region Delegacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() + "_" +
                                                        lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idDelegacion > -1)
                                                {
                                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                                }
                                            }


                                            //Si no existe muestro error
                                            if (lng_idDelegacion == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDDELEGACION),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        #endregion

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS +
                                                                    " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_CODIGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_DESCRIPCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_FECHAHORAINICIO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_FECHAHORAFIN + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_AVISADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDDELEGACION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_OBSERVACIONES + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_COLORFONDO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_COLORLETRA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDEMPRESA +
                                                                    " ) " +
                                                                    " OUTPUT INSERTED.id " +
                                                                    " VALUES " +
                                                                    " ( " +
                                                                            "@codigo," +
                                                                            "@descripcion," +
                                                                            "@fechaHoraInicio," +
                                                                            "@fechaHoraFin," +
                                                                            "@avisado," +
                                                                            "@idDelegacion," +
                                                                            "@observaciones," +
                                                                            "@colorFondo," +
                                                                            "@colorLetra," +
                                                                            "@idEmpresa" +
                                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                    new SqlParameter("@fechaHoraInicio", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                    new SqlParameter("@fechaHoraFin", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                    new SqlParameter("@avisado", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                    lng_idDelegacion > -1
                                        ?   new SqlParameter("@idDelegacion", lng_idDelegacion )
                                        :   new SqlParameter("@idDelegacion",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                        ?   new SqlParameter("@colorFondo", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                        :   new SqlParameter("@colorFondo",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                        ?   new SqlParameter("@colorLetra", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                        :   new SqlParameter("@colorLetra",  DBNull.Value),
                                    lng_idEmpresa > -1
                                        ?   new SqlParameter("@idEmpresa", lng_idEmpresa )
                                        :   new SqlParameter("@idEmpresa",  DBNull.Value)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_CODIGO,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        //Todo Correcto
                                        else
                                        {
                                            lng_idCita = mdl_ValorDevuelto_Modelo.Id;

                                            //Añadir al Diccionario
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                lng_idEmpresa.ToString().Trim() + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");

                                            g_dct_ids_AGD_Citas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }

                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_AGD_CITAS_CAMPO_IDEMPRESA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            #endregion

                        }
                        catch (Exception ex)
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,ex.Message,nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas),"Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AGD_Citas), true);
            }


            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //COM ################################################
        #region COM_Cartera
        public INTERNO_ValorDevuelto_Modelo Insertar_CarteraPagos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idVencimiento = -1;
            long lng_idFacturaCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idTesoreria = -1;
            long lng_idPago = -1;
            long lng_idTesoreria_Pago = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idPredefinidoCabecera_Pago = -1;
            long lng_idDevolucionPago = -1;
            long lng_idTesoreria_DevolucionPago = -1;
            long lng_idClaveAnalitica_DevolucionPago = -1;
            long lng_idPredefinidoCabecera_DevolucionPago = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idVencimiento = -1;
                        lng_idFacturaCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idTesoreria = -1;
                        lng_idPago = -1;
                        lng_idTesoreria_Pago = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idPredefinidoCabecera_Pago = -1;
                        lng_idDevolucionPago = -1;
                        lng_idTesoreria_DevolucionPago = -1;
                        lng_idClaveAnalitica_DevolucionPago = -1;
                        lng_idPredefinidoCabecera_DevolucionPago = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Vencimiento
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_VENCIMENTO))
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                            }

                            //si existe continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim()) : "") + "_" + lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                    lng_idEmpresa.ToString().Trim(),
                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }

                                //si existe continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idFacturaCabecera = g_dct_ids_COM_FacturasCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idFacturaCabecera > -1)
                                        {
                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, lng_idFacturaCabecera);
                                        }

                                    }

                                    //Si existe continuo
                                    if (lng_idFacturaCabecera > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "_" +
                                                  lng_idFacturaCabecera.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_COM_Vencimientos.ContainsKey(str_AUX))
                                        {
                                            lng_idVencimiento = g_dct_ids_COM_Vencimientos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idVencimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                            lng_idFacturaCabecera.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idVencimiento > -1)
                                            {
                                                g_dct_ids_COM_Vencimientos.Add(str_AUX, lng_idVencimiento);
                                            }

                                        }

                                        //Si no existe inserto el registro
                                        if (lng_idVencimiento == -1)
                                        {
                                            //Si contiene algo busco el idTesoreria
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" +
                                                            lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                {
                                                    lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTesoreria > -1)
                                                    {
                                                        g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idTesoreria == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDTESORERIA),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }


                                            }

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IMPORTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDTESORERIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ESTADO + 
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                        "@codigo," +
                                                                                        "@observaciones," +
                                                                                        "@idFacturaCabecera," +
                                                                                        "@importe," +
                                                                                        "@fechaVencimiento," +
                                                                                        "@idTesoreria," +
                                                                                        "@estado" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@codigo",  mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                new SqlParameter("@observaciones",  mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_8),
                                                new SqlParameter("@fechaVencimiento", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                                lng_idTesoreria > -1
                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria )
                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idVencimiento = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "_" +
                                                          lng_idFacturaCabecera.ToString();

                                                g_dct_ids_COM_Vencimientos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    //idFacturaCabecera (No existe en BD o esta vacio)
                                    else
                                    {

                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS
                                                                                                                        ),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                //idDelegacion(No existe en BD)
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                        (
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS
                                                                                                        ),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            //idEmpresa (No existe en BD)
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                        (
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS
                                                                                                        ),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Pagos
                        //Pagos ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PAGO))
                        {

                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //FacturaCabecera
                                lng_idFacturaCabecera = g_dct_ids_COM_FacturasCabecera[str_AUX];

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                        (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "_" +
                                        lng_idFacturaCabecera.ToString();
                                //......................................................................................

                                if (!g_dct_ids_COM_Vencimientos.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                                                               lng_idFacturaCabecera.ToString(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Vencimiento
                                    lng_idVencimiento = g_dct_ids_COM_Vencimientos[str_AUX];

                                    //si el codigo esta vacio es que no hay pago
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idVencimiento.ToString().Trim() + "_" +
                                                  mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" +
                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_COM_Pagos.ContainsKey(str_AUX))
                                        {
                                            lng_idPago = g_dct_ids_COM_Pagos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDVENCIMIENTO,
                                                                                                 lng_idVencimiento.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO,
                                                                                                 mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHA,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPago > -1)
                                            {
                                                g_dct_ids_COM_Pagos.Add(str_AUX, lng_idPago);
                                            }

                                        }


                                        //Si no existe inserto el registro
                                        if (lng_idPago == -1)
                                        {
                                            //Si contiene algo busco el idTesoreria
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                            lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                {
                                                    lng_idTesoreria_Pago = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTesoreria_Pago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTesoreria_Pago > -1)
                                                    {
                                                        g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria_Pago);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idTesoreria_Pago == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDTESORERIA),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idClaveAnalitica
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                {
                                                    lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idClaveAnalitica > -1)
                                                    {
                                                        g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idClaveAnalitica == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDCLAVEANALITICA),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPRedefinidoCAbecera_Pago
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabecera_Pago = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabecera_Pago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabecera_Pago > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Pago);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idPredefinidoCabecera_Pago == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDPREDEFINIDOCABECERA_PAGO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS +
                                                                          " (" +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDVENCIMIENTO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHA + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDTESORERIA + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_COMISION + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CORREO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_PORCENTAJECOMISION + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IMPORTECOMISION + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_OBSERVACIONES + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHAVENCIMIENTOTALON + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_EFECTO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDCLAVEANALITICA + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDPREDEFINIDOCABECERA_PAGO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IMPORTE + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ESTADO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CONFIRMADO + "," +
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDREMESALINEA +
                                                                          " ) " +
                                                                          " OUTPUT INSERTED.id " +
                                                                          " VALUES " +
                                                                          " ( " +
                                                                                       "@idVencimiento," +
                                                                                       "@codigo," +
                                                                                       "@fecha," +
                                                                                       "@idTesoreria," +
                                                                                       "@comision," +
                                                                                       "@correo," +
                                                                                       "@porcentajeComision," +
                                                                                       "@importeComision," +
                                                                                       "@observaciones," +
                                                                                       "@fechaVencimientoTalon," +
                                                                                       "@efecto," +
                                                                                       "@idClaveAnalitica," +
                                                                                       "@idPredefinidoCabecera_Pago," +
                                                                                       "@importe," +
                                                                                       "@estado," +
                                                                                       "@confirmado," +
                                                                                       "@idRemesaLinea" +
                                                                          " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idVencimiento", lng_idVencimiento),
                                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                lng_idTesoreria_Pago > -1
                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria_Pago )
                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                    ?   new SqlParameter("@comision", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                    :   new SqlParameter("@comision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                    ?   new SqlParameter("@correo", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                    :   new SqlParameter("@correo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                    ?   new SqlParameter("@porcentajeComision", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                    :   new SqlParameter("@porcentajeComision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                    ?   new SqlParameter("@importeComision", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                    :   new SqlParameter("@importeComision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                    ?   new SqlParameter("@fechaVencimientoTalon", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                    :   new SqlParameter("@fechaVencimientoTalon",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                    ?   new SqlParameter("@efecto", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                    :   new SqlParameter("@efecto",  DBNull.Value),
                                                lng_idClaveAnalitica > -1
                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                lng_idPredefinidoCabecera_Pago > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_Pago", lng_idPredefinidoCabecera_Pago )
                                                    :   new SqlParameter("@idPredefinidoCabecera_Pago",  DBNull.Value),
                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_25),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_26),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                                    ?   new SqlParameter("@confirmado", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                                    :   new SqlParameter("@confirmado",  DBNull.Value),
                                                new SqlParameter("@idRemesaLinea",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idPago = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = lng_idVencimiento.ToString().Trim() + "_" +
                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "") + "_" +
                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : "");

                                                g_dct_ids_COM_Pagos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region DevolucionPagos
                        //DevolucionPagos ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_DEVOLUCION))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //FacturaCabecera
                                lng_idFacturaCabecera = g_dct_ids_COM_FacturasCabecera[str_AUX];

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX =   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                        (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "_" +
                                        lng_idFacturaCabecera.ToString();
                                //......................................................................................

                                if (!g_dct_ids_COM_Vencimientos.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                                                               lng_idFacturaCabecera.ToString(),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Vencimiento
                                    lng_idVencimiento = g_dct_ids_COM_Vencimientos[str_AUX];

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idVencimiento.ToString().Trim() + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "") + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : "");
                                    //......................................................................................

                                    if (!g_dct_ids_COM_Pagos.ContainsKey(str_AUX))
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDVENCIMIENTO,
                                                                                                                                                                   lng_idVencimiento.ToString(),
                                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO,
                                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHA,
                                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : "")),
                                                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Vencimiento
                                        lng_idPago = g_dct_ids_COM_Pagos[str_AUX];

                                        //si el codigo esta vacio no relleno la devolucion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idPago.ToString().Trim() + "_" +
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() + "_" +
                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_COM_DevolucionesPagos.ContainsKey(str_AUX))
                                            {
                                                lng_idDevolucionPago = g_dct_ids_COM_DevolucionesPagos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idDevolucionPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDPAGO,
                                                                                                                lng_idPago.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_FECHA,
                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idDevolucionPago > -1)
                                                {
                                                    g_dct_ids_COM_DevolucionesPagos.Add(str_AUX, lng_idDevolucionPago);
                                                }

                                            }


                                            //si no existe inserto
                                            if (lng_idDevolucionPago == -1)
                                            {

                                                //Si contiene algo busco el idTesoreria
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                                {

                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() + "_" +
                                                                lng_idEmpresa.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                    {
                                                        lng_idTesoreria_DevolucionPago = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idTesoreria_DevolucionPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idTesoreria_DevolucionPago > -1)
                                                        {
                                                            g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria_DevolucionPago);
                                                        }

                                                    }

                                                    //Si no lo encontro muestro mensaje de error
                                                    if (lng_idTesoreria_DevolucionPago == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDTESORERIA),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idClaveAnalitica
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                    {
                                                        lng_idClaveAnalitica_DevolucionPago = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idClaveAnalitica_DevolucionPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idClaveAnalitica_DevolucionPago > -1)
                                                        {
                                                            g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica_DevolucionPago);
                                                        }

                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idClaveAnalitica_DevolucionPago == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDCLAVEANALITICA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                }

                                                //Si contiene algo busco el idPRedefinidoCAbecera_Pago
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idPredefinidoCabecera_DevolucionPago = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idPredefinidoCabecera_DevolucionPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idPredefinidoCabecera_DevolucionPago > -1)
                                                        {
                                                            g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_DevolucionPago);
                                                        }

                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idPredefinidoCabecera_DevolucionPago == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDPREDEFINIDOCABECERA_DEVOLUCIONPAGO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }

                                                    }
                                                }


                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS +
                                                                    " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDPAGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_CODIGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_FECHA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDTESORERIA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_COMISION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_CORREO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_PORCENTAJECOMISION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IMPORTECOMISION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_OBSERVACIONES + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDCLAVEANALITICA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDPREDEFINIDOCABECERA_DEVOLUCIONPAGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IMPORTE + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_ESTADO + 
                                                                    " ) " +
                                                                    " OUTPUT INSERTED.id " +
                                                                    " VALUES " +
                                                                    " ( " +
                                                                            "@idPago," +
                                                                            "@codigo," +
                                                                            "@fecha," +
                                                                            "@idTesoreria," +
                                                                            "@comision," +
                                                                            "@correo," +
                                                                            "@porcentajeComision," +
                                                                            "@importeComision," +
                                                                            "@observaciones," +
                                                                            "@idClaveAnalitica," +
                                                                            "@idPredefinidoCabecera_DevolucionPago," +
                                                                            "@importe," +
                                                                            "@estado" +
                                                                    " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                new SqlParameter("@idPago", lng_idPago),
                                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_28),
                                                new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_29),
                                                lng_idTesoreria_DevolucionPago > -1
                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria_DevolucionPago )
                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                    ?   new SqlParameter("@comision", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                    :   new SqlParameter("@comision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                    ?   new SqlParameter("@correo", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                    :   new SqlParameter("@correo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                    ?   new SqlParameter("@porcentajeComision", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                    :   new SqlParameter("@porcentajeComision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                    ?   new SqlParameter("@importeComision", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                    :   new SqlParameter("@importeComision",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_35 )
                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                lng_idClaveAnalitica_DevolucionPago > -1
                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica_DevolucionPago )
                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                lng_idPredefinidoCabecera_DevolucionPago > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_DevolucionPago", lng_idPredefinidoCabecera_DevolucionPago )
                                                    :   new SqlParameter("@idPredefinidoCabecera_DevolucionPago",  DBNull.Value),
                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_38),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_39),
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_ID,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idPago.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : "");

                                                    g_dct_ids_COM_DevolucionesPagos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraPagos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region COM_EntradasMercancia
        public INTERNO_ValorDevuelto_Modelo Insertar_EntradasMercancia(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idEntradaMercanciaCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idProveedor = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idPredefinidoCabecera_EntradaMercancia = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idEntradaMercanciaLineas = -1;
            long lng_idTipoCompraVenta = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idNomenclaturaPrecio_Lineas = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas = -1;
            long lng_idPedidoCompraLinea = -1;
            long lng_idDelegacion_PedidoCompraLinea = -1;
            long lng_idPedidoCabecera_PedidoCompraLinea = -1;
            long lng_idProveedorCodigoArticuloProveedor = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idEntradaMercanciaLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idArticulo_Trazabilidad = -1;
            long lng_idEntradaMercanciaLineas_Trazabilidad = -1;
            long lng_idEntradaMercanciaLineas_TarifasPromociones = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            List<long> lst_idEntradasMercanciaCabecera_Insertados = new List<long>();

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {

                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idEntradaMercanciaCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idProveedor = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idPredefinidoCabecera_EntradaMercancia = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idEntradaMercanciaLineas = -1;
                        lng_idTipoCompraVenta = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio_Lineas = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas = -1;
                        lng_idPedidoCompraLinea = -1;
                        lng_idDelegacion_PedidoCompraLinea = -1;
                        lng_idPedidoCabecera_PedidoCompraLinea = -1;
                        lng_idProveedorCodigoArticuloProveedor = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idEntradaMercanciaLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idArticulo_Trazabilidad = -1;
                        lng_idEntradaMercanciaLineas_Trazabilidad = -1;
                        lng_idEntradaMercanciaLineas_TarifasPromociones = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;
                        lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }


                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }


                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                    {
                                        lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProveedor > -1)
                                        {
                                            g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idProveedor > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                        {
                                            lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMoneda > -1)
                                            {
                                                g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idMoneda > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }

                                            }


                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                          lng_idDelegacion.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_COM_EntradasMercancia.ContainsKey(str_AUX))
                                                {
                                                    lng_idEntradaMercanciaCabecera = g_dct_ids_COM_EntradasMercancia[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEntradaMercanciaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                lng_idDelegacion.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEntradaMercanciaCabecera > -1)
                                                    {
                                                        g_dct_ids_COM_EntradasMercancia.Add(str_AUX, lng_idEntradaMercanciaCabecera);
                                                    }

                                                }


                                                //Si no existe inserto el registro
                                                if (lng_idEntradaMercanciaCabecera == -1)
                                                {
                                                    //Si contiene algo busco el idEmpleado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                       lng_idEmpresa.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmpleado > -1)
                                                            {
                                                                g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                            }

                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_idEmpleado == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPLEADO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idPredefinidoCabecera_EntradaMercancia
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_EntradaMercancia = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_EntradaMercancia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_EntradaMercancia > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_EntradaMercancia);
                                                            }

                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_EntradaMercancia == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDPREDEFINIDOCABECERA_ENTRADAMERCANCIA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idClaveAnalitica
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idClaveAnalitica > -1)
                                                            {
                                                                g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                            }

                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_idClaveAnalitica == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDCLAVEANALITICA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_DESCRIPCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDDELEGACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDPROVEEDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDMONEDA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_REFERENCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDPREDEFINIDOCABECERA_ENTRADAMERCANCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHAALBARAN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_RECARGO +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                        "@numeroDocumento," +
                                                                                        "@descripcion," +
                                                                                        "@idDelegacion," +
                                                                                        "@idEmpresa," +
                                                                                        "@fecha," +
                                                                                        "@estado," +
                                                                                        "@idProveedor," +
                                                                                        "@idMoneda," +
                                                                                        "@idImpuestoCabecera," +
                                                                                        "@descuentoProntoPago," +
                                                                                        "@descuentoFinalFactura," +
                                                                                        "@idEmpleado," +
                                                                                        "@referencia," +
                                                                                        "@idPredefinidoCabecera_EntradaMercancia," +
                                                                                        "@idClaveAnalitica," +
                                                                                        "@recargo," +
                                                                                        "@observaciones," +
                                                                                        "@fechaAlbaran," +
                                                                                        "@total," +
                                                                                        "@total_baseImponible," +
                                                                                        "@total_bruto," +
                                                                                        "@total_descuentoFinalFactura," +
                                                                                        "@total_descuentoProntoPago," +
                                                                                        "@total_impuesto," +
                                                                                        "@total_recargo" +
                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                            :   new SqlParameter("@estado",  DBNull.Value),
                                                        new SqlParameter("@idProveedor", lng_idProveedor),
                                                        new SqlParameter("@idMoneda", lng_idMoneda),
                                                        new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                                            ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                                            :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                                            :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                        lng_idEmpleado > -1
                                                            ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                            :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                            ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                            :   new SqlParameter("@referencia",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_EntradaMercancia > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_EntradaMercancia", lng_idPredefinidoCabecera_EntradaMercancia )
                                                            :   new SqlParameter("@idPredefinidoCabecera_EntradaMercancia",  DBNull.Value),
                                                        lng_idClaveAnalitica > -1
                                                            ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                            :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                            ?   new SqlParameter("@fechaAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                            :   new SqlParameter("@fechaAlbaran",  DBNull.Value),
                                                        new SqlParameter("@total",   DBNull.Value),
                                                        new SqlParameter("@total_baseImponible",   DBNull.Value),
                                                        new SqlParameter("@total_bruto",   DBNull.Value),
                                                        new SqlParameter("@total_descuentoFinalFactura",   DBNull.Value),
                                                        new SqlParameter("@total_descuentoProntoPago",   DBNull.Value),
                                                        new SqlParameter("@total_impuesto",   DBNull.Value),
                                                        new SqlParameter("@total_recargo",   DBNull.Value)
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idEntradaMercanciaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                        //Insertados
                                                        lst_idEntradasMercanciaCabecera_Insertados.Add(lng_idEntradaMercanciaCabecera);

                                                        //Añadir al Diccionario
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                                   lng_idDelegacion.ToString().Trim() + "_" +
                                                                   lng_idEmpresa.ToString().Trim() + "_" +
                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");

                                                        g_dct_ids_COM_EntradasMercancia.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            //idImpuestoCabecera (No existe en BD o esta vacio)
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA
                                                                                                                        ),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        //idMoneda (No existe en BD o esta vacio)
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDMONEDA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA
                                                                                                                        ),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    //idProveedor (No existe en BD o esta vacio)
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDPROVEEDOR,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA
                                                                                                                        ),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                //idDelegacion(No existe en BD o esta vacio)
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA
                                                                                                                        ),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            //idEmpresa(No existe en BD o esta vacio)
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                       (
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA
                                                                                                                       ),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);

                            }
                        }
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_EntradasMercancia.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                // EntradaMercanciaCabecera
                                lng_idEntradaMercanciaCabecera = g_dct_ids_COM_EntradasMercancia[str_AUX];

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                {
                                    lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                }
                                else
                                {
                                    lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idTipoCompraVenta > -1)
                                    {
                                        g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                    }

                                }


                                //si existe el registro continuo
                                if (lng_idTipoCompraVenta > -1)
                                {
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" +
                                                    lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idArticulo > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                        {
                                            lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlmacen > -1)
                                            {
                                                g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idAlmacen > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                }

                                            }


                                            //si existe el registro continuo
                                            if (lng_idEmbalaje > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                    }

                                                }


                                                //si existe el registro continuo
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                                    {
                                                        lng_idNomenclaturaPrecio_Lineas = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idNomenclaturaPrecio_Lineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                        {
                                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Lineas);
                                                        }

                                                    }


                                                    //si existe el registro continuo
                                                    if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                    lng_idEntradaMercanciaCabecera.ToString().Trim() + "_" +
                                                                    lng_idArticulo.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_COM_EntradasMercanciaLineas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEntradaMercanciaLineas = g_dct_ids_COM_EntradasMercanciaLineas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEntradaMercanciaLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                        lng_idEntradaMercanciaCabecera.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                        lng_idArticulo.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEntradaMercanciaLineas > -1)
                                                            {
                                                                g_dct_ids_COM_EntradasMercanciaLineas.Add(str_AUX, lng_idEntradaMercanciaLineas);
                                                            }

                                                        }


                                                        //si no existe inserto
                                                        if (lng_idEntradaMercanciaLineas == -1)
                                                        {
                                                            //Si contiene algo busco el idEntradaMercanciaLinea_PromocionesTarifasAsociadas
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = lng_idEntradaMercanciaLineas.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas = g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_IDENTRADAMERCANCIALINEA,
                                                                                                                                                                        lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas > -1)
                                                                    {
                                                                        g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.Add(str_AUX, lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim() : ""),
                                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIALINEA_PROMOCIONESTARIFASASOCIADAS),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idPedidoCompraLinea
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null &&
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_23 != null &&
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() + "_" +
                                                                                lng_idEmpresa.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idDelegacion_PedidoCompraLinea = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idDelegacion_PedidoCompraLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idDelegacion_PedidoCompraLinea > -1)
                                                                    {
                                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_PedidoCompraLinea);
                                                                    }

                                                                }

                                                                //si existe continuo
                                                                if (lng_idDelegacion_PedidoCompraLinea > -1)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() + "_" +
                                                                                lng_idEmpresa.ToString().Trim() + "_" +
                                                                                lng_idDelegacion_PedidoCompraLinea.ToString().Trim() + "_" +
                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() : "");
                                                                    //......................................................................................

                                                                    if (g_dct_ids_COM_PedidosCompraCabecera.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idPedidoCabecera_PedidoCompraLinea = g_dct_ids_COM_PedidosCompraCabecera[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idPedidoCabecera_PedidoCompraLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                                lng_idDelegacion_PedidoCompraLinea.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHA,
                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idPedidoCabecera_PedidoCompraLinea > -1)
                                                                        {
                                                                            g_dct_ids_COM_PedidosCompraCabecera.Add(str_AUX, lng_idPedidoCabecera_PedidoCompraLinea);
                                                                        }

                                                                    }

                                                                    //si existe continuo
                                                                    if (lng_idPedidoCabecera_PedidoCompraLinea > -1)
                                                                    {
                                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                        str_AUX = lng_idPedidoCabecera_PedidoCompraLinea.ToString().Trim() + "_" +
                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim();
                                                                        //......................................................................................

                                                                        if (g_dct_ids_COM_PedidosCompraLinea.ContainsKey(str_AUX))
                                                                        {
                                                                            lng_idPedidoCompraLinea = g_dct_ids_COM_PedidosCompraLinea[str_AUX];
                                                                        }
                                                                        else
                                                                        {
                                                                            lng_idPedidoCompraLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                        lng_idPedidoCabecera_PedidoCompraLinea.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                            //Añadir al Diccionario
                                                                            if (lng_idPedidoCompraLinea > -1)
                                                                            {
                                                                                g_dct_ids_COM_PedidosCompraLinea.Add(str_AUX, lng_idPedidoCompraLinea);
                                                                            }

                                                                        }

                                                                        //Si no existe muestro error
                                                                        if (lng_idPedidoCompraLinea == -1)
                                                                        {
                                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPEDIDOCOMPRALINEA),
                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                    " idPedido " + (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() : "") + " y Fechapedido "  + (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPEDIDOCOMPRALINEA + "_PedidoCabecera"),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPEDIDOCOMPRALINEA + "_Delegacion"),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }

                                                            }

                                                            //Si contiene algo busco el idProveedorCodigoArticuloProveedor
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                                            lng_idProveedor.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idProveedorCodigoArticuloProveedor = g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idProveedorCodigoArticuloProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDARTICULO,
                                                                                                                                                        lng_idArticulo.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDPROVEEDOR,
                                                                                                                                                        lng_idProveedor.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idProveedorCodigoArticuloProveedor > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.Add(str_AUX, lng_idProveedorCodigoArticuloProveedor);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idProveedorCodigoArticuloProveedor == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idUbicacion
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() + "_" +
                                                                            lng_idEmpresa.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idUbicacion > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idUbicacion == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDUBICACION),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idImpuestoTipo
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idImpuestoTipo > -1)
                                                                    {
                                                                        g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idImpuestoTipo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idEntradaMercanciaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_45 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim() + "_" +
                                                                            lng_idArticulo.ToString().Trim() + "_" +
                                                                            lng_idAlmacen.ToString().Trim() + "_" +
                                                                            lng_idEmbalaje.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_COM_EntradasMercanciaLineas.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEntradaMercanciaLinea_Padre = g_dct_ids_COM_EntradasMercanciaLineas[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEntradaMercanciaLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                        lng_idArticulo.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDALMACEN,
                                                                                                                        lng_idAlmacen.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDEMBALAJE,
                                                                                                                        lng_idEmbalaje.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEntradaMercanciaLinea_Padre > -1)
                                                                    {
                                                                        g_dct_ids_COM_EntradasMercanciaLineas.Add(str_AUX, lng_idEntradaMercanciaLinea_Padre);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idEntradaMercanciaLinea_Padre == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIALINEA_PADRE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idSolicitudOfertaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_52 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }


                                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS +
                                                                        " (" +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIACABECERA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDTIPOCOMPRAVENTA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIALINEA_PROMOCIONESTARIFASASOCIADAS + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPEDIDOCOMPRALINEA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDALMACEN + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDUBICACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_CANTIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_OPERACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_PRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IMPORTE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIALINEA_PADRE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                    "@idEntradaMercanciaCabecera," +
                                                                                    "@idTipoCompraVenta," +
                                                                                    "@idEntradaMercanciaLinea_PromocionesTarifasAsociadas," +
                                                                                    "@idPedidoCompraLinea," +
                                                                                    "@idProveedorCodigoArticuloProveedor," +
                                                                                    "@idArticulo," +
                                                                                    "@numeroLinea," +
                                                                                    "@idAlmacen," +
                                                                                    "@idUbicacion," +
                                                                                    "@cantidad," +
                                                                                    "@idEmbalaje," +
                                                                                    "@relacion," +
                                                                                    "@operacion," +
                                                                                    "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                    "@segundaUnidad_relacion," +
                                                                                    "@segundaUnidad_idEmbalaje," +
                                                                                    "@segundaUnidad_cantidad," +
                                                                                    "@idNomenclaturaPrecio," +
                                                                                    "@precio," +
                                                                                    "@numeroRedondeo," +
                                                                                    "@descuentoGeneral," +
                                                                                    "@importe," +
                                                                                    "@idImpuestoTipo," +
                                                                                    "@idEntradaMercanciaLinea_Padre," +
                                                                                    "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                    "@embalajePrincipalDelArticulo_relacion," +
                                                                                    "@embalajePrincipalDelArticulo_operacion," +
                                                                                    "@embalajePrincipalDelArticulo_precio," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                        " ) ";

                                                            //Parametros
                                                            object[] arr_Parametros_Insert = new object[]
                                                            {
                                                                new SqlParameter("@idEntradaMercanciaCabecera", lng_idEntradaMercanciaCabecera),
                                                                new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta),
                                                                lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas > -1
                                                                    ?   new SqlParameter("@idEntradaMercanciaLinea_PromocionesTarifasAsociadas", lng_idEntradaMercanciaLinea_PromocionesTarifasAsociadas )
                                                                    :   new SqlParameter("@idEntradaMercanciaLinea_PromocionesTarifasAsociadas",  DBNull.Value),
                                                                lng_idPedidoCompraLinea > -1
                                                                    ?   new SqlParameter("@idPedidoCompraLinea", lng_idPedidoCompraLinea )
                                                                    :   new SqlParameter("@idPedidoCompraLinea",  DBNull.Value),
                                                                lng_idProveedorCodigoArticuloProveedor > -1
                                                                    ?   new SqlParameter("@idProveedorCodigoArticuloProveedor", lng_idProveedorCodigoArticuloProveedor )
                                                                    :   new SqlParameter("@idProveedorCodigoArticuloProveedor",  DBNull.Value),
                                                                new SqlParameter("@idArticulo", lng_idArticulo),
                                                                new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_28),
                                                                new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                                lng_idUbicacion > -1
                                                                    ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                                    :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                                new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_31),
                                                                new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                                new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_33),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                                    ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                                    :   new SqlParameter("@operacion",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                                    ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_35 )
                                                                    :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                                    ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_36 )
                                                                    :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_SegundaUnidad > -1
                                                                    ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                                    :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                                    ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                                    :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                                new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio_Lineas),
                                                                new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_40),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                                    ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                                    :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                                    ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                                                    :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_43!= null
                                                                    ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_43 )
                                                                    :   new SqlParameter("@importe",  DBNull.Value),
                                                                lng_idImpuestoTipo > -1
                                                                    ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                                    :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                                lng_idEntradaMercanciaLinea_Padre > -1
                                                                    ?   new SqlParameter("@idEntradaMercanciaLinea_Padre", lng_idEntradaMercanciaLinea_Padre )
                                                                    :   new SqlParameter("@idEntradaMercanciaLinea_Padre",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_47),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_49 ),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_50 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_51 != null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_51 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value)
                                                            };

                                                            //Llamamos a la funcion de insertar
                                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                            //Todo Correcto
                                                            else
                                                            {
                                                                lng_idEntradaMercanciaLineas = mdl_ValorDevuelto_Modelo.Id;

                                                                //Añadir al Diccionario
                                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                    lng_idEntradaMercanciaCabecera.ToString().Trim() + "_" +
                                                                    lng_idArticulo.ToString().Trim();

                                                                g_dct_ids_COM_EntradasMercanciaLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                            }

                                                        }
                                                    }
                                                    //idNomenclaturaPrecio
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                                        (
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDNOMENCLATURAPRECIO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                                        ),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }
                                                //idEmbalajePrincipal
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                                        (
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                                        ),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            //idEmbalaje
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                                        (
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDEMBALAJE,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                                        ),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        //idAlmacen
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                                        (
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDALMACEN,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                                        ),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    //idArticulo
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                        ),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                //idTipoCompraVenta
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO
                                                                                                                        (
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDTIPOCOMPRAVENTA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS
                                                                                                                        ),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        #region Trazabilidad
                        //LINEA TRAZABILIDAD ###################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_TRAZABILIDAD))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Coger el idCabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            if (!g_dct_ids_COM_EntradasMercancia.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD,
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHA,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                                                                         "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //EntradaMercanciaCabecera
                                lng_idEntradaMercanciaCabecera = g_dct_ids_COM_EntradasMercancia[str_AUX];

                                //idArticulo
                                if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                {
                                    lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                }

                                //Coger el idLinea
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                            lng_idEntradaMercanciaCabecera.ToString().Trim() + "_" +
                                            lng_idArticulo.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_COM_EntradasMercanciaLineas.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //EntradaMercanciaLineas
                                    lng_idEntradaMercanciaLineas = g_dct_ids_COM_EntradasMercanciaLineas[str_AUX];

                                    //idArticulo
                                    if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                    {
                                        lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                    }

                                    //Si el primer campo es nulo no relleno trazabilidad
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null)
                                    {
                                        //idArticulo_Trazabilidad
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() + "_" + lng_idArticulo.ToString().Trim();

                                        if (g_dct_ids_MAE_Articulos_Trazabilidad.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo_Trazabilidad = g_dct_ids_MAE_Articulos_Trazabilidad[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO,
                                                                                                                         lng_idArticulo.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo_Trazabilidad > -1)
                                            {
                                                g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, lng_idArticulo_Trazabilidad);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idArticulo_Trazabilidad > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idEntradaMercanciaLineas.ToString().Trim() + "_" +
                                                      lng_idArticulo_Trazabilidad.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad.ContainsKey(str_AUX))
                                            {
                                                lng_idEntradaMercanciaLineas_Trazabilidad = g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEntradaMercanciaLineas_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDENTRADAMERCANCIALINEA,
                                                                                                                    lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                    lng_idArticulo_Trazabilidad.ToString(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEntradaMercanciaLineas_Trazabilidad > -1)
                                                {
                                                    g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad.Add(str_AUX, lng_idEntradaMercanciaLineas_Trazabilidad);
                                                }

                                            }


                                            //Si no existe inserto el registro
                                            if (lng_idEntradaMercanciaLineas_Trazabilidad == -1)
                                            {
                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD +
                                                                                       " (" +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDENTRADAMERCANCIALINEA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_CANTIDAD + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_SEGUNDAUNIDAD_CANTIDAD +
                                                                                       " ) " +
                                                                                       " OUTPUT INSERTED.id " +
                                                                                       " VALUES " +
                                                                                       " ( " +
                                                                                                "@idArticulo_Trazabilidad," +
                                                                                                "@idEntradaMercanciaLinea," +
                                                                                                "@cantidad," +
                                                                                                "@segundaUnidad_cantidad" +
                                                                                       " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idArticulo_Trazabilidad", lng_idArticulo_Trazabilidad ),
                                                        new SqlParameter("@idEntradaMercanciaLinea", lng_idEntradaMercanciaLineas ),
                                                        new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_54 ),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_55 != null
                                                                    ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_55 )
                                                                    :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDENTRADAMERCANCIALINEA,
                                                                                                                                                    lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idEntradaMercanciaLineas.ToString().Trim() + "_" +
                                                                lng_idArticulo_Trazabilidad;

                                                    g_dct_ids_COM_EntradasMercanciaLineasTrazabilidad.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);

                                                }   
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDENTRADAMERCANCIALINEA,
                                                                                                                                         lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD),
                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                                                         "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                                                                 "lote",
                                                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                                                                                  "Articulo",
                                                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TRAZABILIDAD),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifacPromociones ###########################################################################################
                        if (lng_idEntradaMercanciaLineas > -1)
                        {
                            //Si no existe el codigo no relleno
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_56 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim() + "_" +
                                          lng_idEntradaMercanciaLineas.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idEntradaMercanciaLineas_TarifasPromociones = g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idEntradaMercanciaLineas_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_IDENTRADAMERCANCIALINEA,
                                                                                                                          lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEntradaMercanciaLineas_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.Add(str_AUX, lng_idEntradaMercanciaLineas_TarifasPromociones);
                                    }
                                   
                                }
                               

                                //si no existe inserto
                                if (lng_idEntradaMercanciaLineas == -1)
                                {
                                    //Si contiene algo busco el lng_idNomenclaturaPrecio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_68 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }
                                           
                                        }
                                       
                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_73 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                      lng_idEmpresa.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }
                                            
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }
                                           
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_IDENTRADAMERCANCIALINEA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                             "@idEntradaMercanciaLinea," +
                                                                             "@codigo," +
                                                                             "@descripcion," +
                                                                             "@descuento_1," +
                                                                             "@descuento_2," +
                                                                             "@descuento_3," +
                                                                             "@descuento_4," +
                                                                             "@descuento_5," +
                                                                             "@incremento," +
                                                                             "@numeroRedondeo," +
                                                                             "@tipo," +
                                                                             "@precioFijoDinamico," +
                                                                             "@precio," +
                                                                             "@idNomenclaturaPrecio," +
                                                                             "@descuentoMoneda," +
                                                                             "@AB_Cantidad_A," +
                                                                             "@AB_Cantidad_B," +
                                                                             "@AB_Porcentaje," +
                                                                             "@AB_idArticulo," +
                                                                             "@AB_idEmbalaje," +
                                                                             "@AB_Cancelado," +
                                                                             "@orden," +
                                                                             "@mensaje_Error," +
                                                                             "@desactivado," +
                                                                             "@noAplicarTarifa," +
                                                                             "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idEntradaMercanciaLinea", lng_idEntradaMercanciaLineas),
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_56),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_57),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_58 != null
                                            ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_58 )
                                            :   new SqlParameter("@descuento_1",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                            ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_59 )
                                            :   new SqlParameter("@descuento_2",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_60 != null
                                            ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_60 )
                                            :   new SqlParameter("@descuento_3",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_61 != null
                                            ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_61 )
                                            :   new SqlParameter("@descuento_4",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_62 != null
                                            ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_62 )
                                            :   new SqlParameter("@descuento_5",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_63 != null
                                            ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_63 )
                                            :   new SqlParameter("@incremento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_64 != null
                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_64 )
                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_65 ),
                                        new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_66 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                            ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                            :   new SqlParameter("@precio",  DBNull.Value),
                                        lng_idNomenclaturaPrecio > -1
                                            ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio )
                                            :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                            ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                            :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_70 != null
                                            ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_70 )
                                            :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_71 != null
                                            ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_71 )
                                            :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                            ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                            :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                        lng_AB_idArticulo > -1
                                            ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                            :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                        lng_AB_idEmbalaje > -1
                                            ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                            :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_75 != null
                                            ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_75 )
                                            :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                        new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_76 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_77 != null
                                            ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_77 )
                                            :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_78 != null
                                            ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_78 )
                                            :   new SqlParameter("@desactivado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_79 != null
                                            ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                            :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_80 != null
                                            ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_80)
                                            :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idEntradaMercanciaLineas_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_56 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim() : "") + "_" +
                                                   lng_idEntradaMercanciaLineas.ToString().Trim();

                                        g_dct_ids_COM_EntradasMercanciaTarifasLineasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idEntradaMercanciaLineas_TarifasPromociones > -1)
                        {
                            //Si no existe el primer registro no lo tengo en cuenta
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_81 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_82 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_83 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_87 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_88 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_89 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idEntradaMercanciaLineas_TarifasPromociones.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_EntradasMercanciaCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes = g_dct_ids_COM_EntradasMercanciaCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDENTRADAMERCANCIALINEATARIFAPROMOCION,
                                                                                              lng_idEntradaMercanciaLineas_TarifasPromociones.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_COM_EntradasMercanciaCondicionantes.Add(str_AUX, lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes);
                                    }
                                    
                                }
                                

                                //si no existe inserto
                                if (lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDENTRADAMERCANCIALINEATARIFAPROMOCION + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idEntradaMercanciaLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idEntradaMercanciaLineaTarifaPromocion", lng_idEntradaMercanciaLineas_TarifasPromociones ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                            ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                            :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                            ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                            :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_83 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_83 )
                                            :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_84 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_84 )
                                            :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                            ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                            :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_86 != null
                                            ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_86 )
                                            :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_87 != null
                                            ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_87 )
                                            :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_88 != null
                                            ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_88 )
                                            :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_89!= null
                                            ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_89 )
                                            :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = lng_idEntradaMercanciaLineas_TarifasPromociones_Condicionantes.ToString().Trim();

                                        g_dct_ids_COM_EntradasMercanciaCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDENTRADAMERCANCIALINEATARIFAPROMOCION,
                                                                                                                         lng_idEntradaMercanciaLineas.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_TARIFASPROMOCIONES_CONDICIONANTES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idEntradasMercanciaCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idEntradaMercanciaCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";


                        foreach (long lng_idEntradasMercanciaCabecera in lst_idEntradasMercanciaCabecera_Insertados)
                        {
                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                                                                                lng_idEntradasMercanciaCabecera,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                "",
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIALINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ID,
                                                                                                                                lng_idEntradasMercanciaCabecera,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDPROVEEDOR,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_PROVEEDOR_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idEntradaMercanciaCabecera", lng_idEntradasMercanciaCabecera),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                        new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                                               lng_idEntradasMercanciaCabecera.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idEntradasMercanciaCabecera.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_COM_EntradasMercanciaResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                   lng_idEntradasMercanciaCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                   lng_idEntradasMercanciaCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                                                        lng_idEntradasMercanciaCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                        lng_idEntradasMercanciaCabecera.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                        "");

                            }
                        }
                    }
                    #endregion


                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorEntradaMercanciaCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorEntradaMercanciaCabecera != null && lst_TotalResumen_PorEntradaMercanciaCabecera.Count > 0)
                    {
                        long lng_idEntradaMercanciaCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorEntradaMercanciaCabecera)
                        {
                            try
                            {
                                lng_idEntradaMercanciaCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                      mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                       mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                                                    lng_idEntradaMercanciaCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_ENTRADASMERCANCIACABECERA_RESUMEN_CAMPO_IDENTRADAMERCANCIACABECERA,
                                                                                                lng_idEntradaMercanciaCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                                "");
                            }

                        }
                    }
                    #endregion
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region COM_Facturas
        public INTERNO_ValorDevuelto_Modelo Insertar_FacturasCompras(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idFacturaCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            long lng_idProveedor = -1;
            long lng_idFormaPago = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idPredefinidoCabecera = -1;
            long lng_idPredefinidoCabecera_Abono = -1;
            long lng_idContrato = -1;
            long lng_idExpediente = -1;
            long lng_idConcepto = -1;
            long lng_idRetencionTipo = -1;
            long lng_idFacturaCabecera_Anexo = -1;
            long lng_idPais = -1;
            long lng_idProvincia = -1;
            long lng_idMunicipio = -1;
            long lng_idPoblacion = -1;
            long lng_idFacturaCabeceraCabecera_Resumen = -1;
            long lng_idImpuestoTipo_Resumen = -1;
            long lng_idImpuestoLinea_Resumen = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idFacturaCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        lng_idProveedor = -1;
                        lng_idFormaPago = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idPredefinidoCabecera = -1;
                        lng_idPredefinidoCabecera_Abono = -1;
                        lng_idContrato = -1;
                        lng_idExpediente = -1;
                        lng_idConcepto = -1;
                        lng_idRetencionTipo = -1;
                        lng_idFacturaCabecera_Anexo = -1;
                        lng_idPais = -1;
                        lng_idProvincia = -1;
                        lng_idMunicipio = -1;
                        lng_idPoblacion = -1;
                        lng_idFacturaCabeceraCabecera_Resumen = -1;
                        lng_idImpuestoTipo_Resumen = -1;
                        lng_idImpuestoLinea_Resumen = -1;

                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Inicializo la variable principal
                            lng_idFacturaCabecera = -1;

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                                
                            }
                           

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "") ;
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                    {
                                        lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProveedor > -1)
                                        {
                                            g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProveedor > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                                        {
                                            lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idFormaPago > -1)
                                            {
                                                g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                            }
                                            
                                        }
                                        

                                        //si existe el registro continuo
                                        if (lng_idFormaPago > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }
                                                
                                            }
                                           

                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "") ;
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmpleado > -1)
                                                    {
                                                        g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                    }

                                                   
                                                }
                                                

                                                //si existe el registro continuo
                                                if (lng_idEmpleado > -1)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                              lng_idDelegacion.ToString().Trim() + "_" +
                                                              lng_idEmpresa.ToString().Trim() + "_" +
                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                                                    {
                                                        lng_idFacturaCabecera = g_dct_ids_COM_FacturasCabecera[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idFacturaCabecera > -1)
                                                        {
                                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, lng_idFacturaCabecera);
                                                        }
                                                        
                                                    }
                                                    


                                                    //Si no existe inserto el registro
                                                    if (lng_idFacturaCabecera == -1)
                                                    {
                                                        //Si contiene algo busco el idClaveAnalitica
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() + "_" +
                                                                      lng_idEmpresa.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idClaveAnalitica > -1)
                                                                {
                                                                    g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                                }
                                                                
                                                            }
                                                            
                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idClaveAnalitica == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCLAVEANALITICA),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }

                                                        //Si contiene algo busco el idPredefinidoCabecera
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPredefinidoCabecera > -1)
                                                                {
                                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                                                }
                                                                
                                                            }
                                                            
                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idPredefinidoCabecera == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        //Si contiene algo busco el idPredefinidoCabecera
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPredefinidoCabecera_Abono = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPredefinidoCabecera_Abono = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPredefinidoCabecera_Abono > -1)
                                                                {
                                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Abono);
                                                                }
                                                                
                                                            }
                                                            
                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idPredefinidoCabecera_Abono == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ABONO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        //Si contiene algo busco el idContrato
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTP_Contratos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idContrato = g_dct_ids_CTP_Contratos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idContrato = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTP_CONTRATOS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTP_CONTRATOS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTP_CONTRATOS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idContrato > -1)
                                                                {
                                                                    g_dct_ids_CTP_Contratos.Add(str_AUX, lng_idContrato);
                                                                }

                                                            }

                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idContrato == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCONTRATO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        //Si contiene algo busco el idExpediente
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTG_Expedientes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idExpediente = g_dct_ids_CTG_Expedientes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idExpediente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTG_EXPEDIENTES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTG_EXPEDIENTES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTG_EXPEDIENTES_CAMPO_NUMERO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idExpediente > -1)
                                                                {
                                                                    g_dct_ids_CTG_Expedientes.Add(str_AUX, lng_idExpediente);
                                                                }

                                                            }

                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idExpediente == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEXPEDIENTE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        //Si contiene algo busco el idConcepto
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTG_Conceptos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idConcepto = g_dct_ids_CTG_Conceptos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idConcepto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTG_CONCEPTOS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTG_CONCEPTOS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTG_CONCEPTOS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idConcepto > -1)
                                                                {
                                                                    g_dct_ids_CTG_Conceptos.Add(str_AUX, lng_idConcepto);
                                                                }

                                                            }

                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idConcepto == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCONCEPTO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        //Si contiene algo busco el idRetencionTipo
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_31 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idRetencionTipo = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idRetencionTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idRetencionTipo > -1)
                                                                {
                                                                    g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo);
                                                                }

                                                            }

                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idRetencionTipo == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDRETENCIONTIPO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }

                                                        }

                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA +
                                                                                    " (" +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPROVEEDOR + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDFORMAPAGO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHAINTRODUCCION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ESTADO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_AUTOLIQUIDACION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +                                                                           
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ABONO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FACTURAADUANA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_BIENESINVERSION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_GASTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_CRITERIOCAJA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURAPROVEEDOR + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCONTRATO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEXPEDIENTE + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDCONCEPTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FACTURAARRENDAMIENTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NODECLARARENINFORMATIVAS + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDRETENCIONTIPO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RETENCION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RETENCION_BASE + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RECARGO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTALSINRETENCION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL + 
                                                                                               
                                                                                    " ) " +
                                                                                    " OUTPUT INSERTED.id " +
                                                                                    " VALUES " +
                                                                                    " ( " +
                                                                                                "@numeroFactura," +
                                                                                                "@idEmpresa," +
                                                                                                "@idDelegacion," +
                                                                                                "@idProveedor," +
                                                                                                "@idFormaPago," +
                                                                                                "@idImpuestoCabecera," +
                                                                                                "@idEmpleado," +
                                                                                                "@fecha," +
                                                                                                "@fechaIntroduccion," +
                                                                                                "@estado," +
                                                                                                "@autoliquidacion," +
                                                                                                "@descripcion," +
                                                                                                "@descuentoProntoPago," +
                                                                                                "@descuentoFinalFactura," +
                                                                                                "@idClaveAnalitica," +
                                                                                                "@idPredefinidoCabecera," +
                                                                                                "@idPredefinidoCabecera_Abono," +
                                                                                                "@facturaAduana," +
                                                                                                "@bienesInversion," +
                                                                                                "@gasto," +
                                                                                                "@criterioCaja," +
                                                                                                "@observaciones," +
                                                                                                "@numeroFacturaProveedor," +
                                                                                                "@idContrato," +
                                                                                                "@idExpediente," +
                                                                                                "@idConcepto," +
                                                                                                "@facturaArrendamiento," +
                                                                                                "@noDeclararEnInformativas, " +
                                                                                                "@idRetencionTipo, " +
                                                                                                "@total_bruto," +
                                                                                                "@total_descuentoFinalFactura," +
                                                                                                "@total_descuentoProntoPago," +
                                                                                                "@total_baseImponible," +
                                                                                                "@total_retencion," +
                                                                                                "@total_retencion_Base," +
                                                                                                "@total_impuesto," +
                                                                                                "@total_recargo," +
                                                                                                "@total_sinRetencion," +
                                                                                                "@total" +
                                                                                    " ) ";

                                                        //Parametros
                                                        decimal dcm_Cero = 0m;
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                            new SqlParameter("@numeroFactura", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                            new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                            new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                            new SqlParameter("@idProveedor", lng_idProveedor),
                                                            new SqlParameter("@idFormaPago", lng_idFormaPago),
                                                            new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                            new SqlParameter("@idEmpleado", lng_idEmpleado),
                                                            new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                                            new SqlParameter("@fechaIntroduccion", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                            new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                                                ?   new SqlParameter("@autoliquidacion", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                                                :   new SqlParameter("@autoliquidacion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                                ?   new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                                :   new SqlParameter("@descripcion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                                ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                                :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                                                ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_15 )
                                                                :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                            lng_idClaveAnalitica > -1
                                                                ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                                :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                            lng_idPredefinidoCabecera > -1
                                                                ?   new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera )
                                                                :   new SqlParameter("@idPredefinidoCabecera",  DBNull.Value),
                                                            lng_idPredefinidoCabecera_Abono > -1
                                                                ?   new SqlParameter("@idPredefinidoCabecera_Abono", lng_idPredefinidoCabecera_Abono )
                                                                :   new SqlParameter("@idPredefinidoCabecera_Abono",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                                ?   new SqlParameter("@facturaAduana", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                                :   new SqlParameter("@facturaAduana",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                                ?   new SqlParameter("@bienesInversion", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                                :   new SqlParameter("@bienesInversion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                                ?   new SqlParameter("@gasto", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                                :   new SqlParameter("@gasto",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                                ?   new SqlParameter("@criterioCaja", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                                :   new SqlParameter("@criterioCaja",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                                             mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                                ?   new SqlParameter("@numeroFacturaProveedor", mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString() )
                                                                :   new SqlParameter("@numeroFacturaProveedor",  DBNull.Value),
                                                            lng_idContrato > -1
                                                                ?   new SqlParameter("@idContrato", lng_idContrato )
                                                                :   new SqlParameter("@idContrato",  DBNull.Value),
                                                            lng_idExpediente > -1
                                                                ?   new SqlParameter("@idExpediente", lng_idExpediente )
                                                                :   new SqlParameter("@idExpediente",  DBNull.Value),
                                                            lng_idConcepto > -1
                                                                ?   new SqlParameter("@idConcepto", lng_idConcepto )
                                                                :   new SqlParameter("@idConcepto",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                                ?   new SqlParameter("@facturaArrendamiento", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                                :   new SqlParameter("@facturaArrendamiento",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                                ?   new SqlParameter("@noDeclararEnInformativas", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                                :   new SqlParameter("@noDeclararEnInformativas",  DBNull.Value),
                                                            lng_idRetencionTipo > -1
                                                                ?   new SqlParameter("@idRetencionTipo", lng_idRetencionTipo )
                                                                :   new SqlParameter("@idRetencionTipo",  DBNull.Value),
                                                            new SqlParameter("@total_bruto", dcm_Cero ),
                                                            new SqlParameter("@total_descuentoFinalFactura",dcm_Cero),
                                                            new SqlParameter("@total_descuentoProntoPago", dcm_Cero),
                                                            new SqlParameter("@total_baseImponible",  dcm_Cero),
                                                            new SqlParameter("@total_retencion",dcm_Cero),
                                                            new SqlParameter("@total_retencion_Base",dcm_Cero),
                                                            new SqlParameter("@total_impuesto",dcm_Cero),
                                                            new SqlParameter("@total_recargo",dcm_Cero),
                                                            new SqlParameter("@total_sinRetencion", dcm_Cero),
                                                            new SqlParameter("@total", dcm_Cero)
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        //Todo Correcto
                                                        else
                                                        {
                                                            lng_idFacturaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                            //Añadir al Diccionario
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                                       lng_idDelegacion.ToString().Trim() + "_" +
                                                                       lng_idEmpresa.ToString().Trim() + "_" +
                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");

                                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPLEADO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDFORMAPAGO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDPROVEEDOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idFacturaCabecera > -1)
                        {
                            //si le empresa no esta rellena no relleno el anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idFacturaCabecera.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_FacturasCabeceraAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idFacturaCabecera_Anexo = g_dct_ids_COM_FacturasCabeceraAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idFacturaCabecera_Anexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDFACTURACABECERA,
                                                                                                            lng_idFacturaCabecera.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idFacturaCabecera_Anexo > -1)
                                    {
                                        g_dct_ids_COM_FacturasCabeceraAnexos.Add(str_AUX, lng_idFacturaCabecera_Anexo);
                                    }

                                }


                                //Si no existe inserto el registro
                                if (lng_idFacturaCabecera_Anexo == -1)
                                {
                                    //Si contiene algo busco el idPais
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                        {
                                            lng_idPais = g_dct_ids_GEN_Paises[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPais = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPais > -1)
                                            {
                                                g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais);
                                            }

                                        }

                                        //Si no lo encontro muestro mensaje de error
                                        if (lng_idPais == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPAIS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idProvincia
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                        {
                                            lng_idProvincia = g_dct_ids_GEN_Provincias[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProvincia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProvincia > -1)
                                            {
                                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia);
                                            }

                                        }

                                        //Si no lo encontro muestro mensaje de error
                                        if (lng_idProvincia == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPROVINCIA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMunicipio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                        {
                                            lng_idMunicipio = g_dct_ids_GEN_Municipios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMunicipio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMunicipio > -1)
                                            {
                                                g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio);
                                            }

                                        }

                                        //Si no lo encontro muestro mensaje de error
                                        if (lng_idMunicipio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDMUNICIPIO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idPoblacion
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                        {
                                            lng_idPoblacion = g_dct_ids_GEN_Poblaciones[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPoblacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPoblacion > -1)
                                            {
                                                g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion);
                                            }

                                        }

                                        //Si no lo encontro muestro mensaje de error
                                        if (lng_idPoblacion == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPOBLACION),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS +
                                                                  " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDFACTURACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_EMPRESA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_DIRECCION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPAIS + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPROVINCIA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDMUNICIPIO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_IDPOBLACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_NIF + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_OBSERVACIONES + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_TELEFONO_1 + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_TELEFONO_2 + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_ANEXOS_CAMPO_FAX +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                            "@idFacturaCabecera," +
                                                                            "@empresa," +
                                                                            "@direccion," +
                                                                            "@idPais," +
                                                                            "@idProvincia," +
                                                                            "@idMunicipio," +
                                                                            "@idPoblacion," +
                                                                            "@nif," +
                                                                            "@observaciones," +
                                                                            "@telefono_1," +
                                                                            "@telefono_2," +
                                                                            "@fax" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                                    new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                        ?   new SqlParameter("@empresa", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                        :   new SqlParameter("@empresa",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                        ?   new SqlParameter("@direccion", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                        :   new SqlParameter("@direccion",  DBNull.Value),
                                                    lng_idPais > -1
                                                        ?   new SqlParameter("@idPais", lng_idPais )
                                                        :   new SqlParameter("@idPais",  DBNull.Value),
                                                    lng_idProvincia > -1
                                                        ?   new SqlParameter("@idProvincia", lng_idProvincia )
                                                        :   new SqlParameter("@idProvincia",  DBNull.Value),
                                                    lng_idMunicipio > -1
                                                        ?   new SqlParameter("@idMunicipio", lng_idMunicipio )
                                                        :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                                    lng_idPoblacion > -1
                                                        ?   new SqlParameter("@idPoblacion", lng_idPoblacion )
                                                        :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                        ?   new SqlParameter("@nif", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                        :   new SqlParameter("@nif",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_39 )
                                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                                        ?   new SqlParameter("@telefono_1", mdl_INTERNO_Tabla_Modelo.Objeto_40 )
                                                        :   new SqlParameter("@telefono_1",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                        ?   new SqlParameter("@telefono_2", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                        :   new SqlParameter("@telefono_2",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                        ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                                        :   new SqlParameter("@fax",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idFacturaCabecera.ToString().Trim();

                                        g_dct_ids_COM_FacturasCabeceraAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Resumen
                        //Resumen ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_RESUMEN))
                        {

                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //FacturaCabecera
                                lng_idFacturaCabecera = g_dct_ids_COM_FacturasCabecera[str_AUX];

                                //Si el idImpuestoTipo esta vacio no relleno resumen
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_43 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idImpuestoTipo_Resumen = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idImpuestoTipo_Resumen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idImpuestoTipo_Resumen > -1)
                                        {
                                            g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo_Resumen);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idImpuestoTipo_Resumen > -1)
                                    {
                                        //idImpuestoCabecera
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "") + "_" +
                                                          lng_idEmpresa.ToString().Trim();

                                        if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                        {
                                            lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                        }

                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idImpuestoCabecera + "_" + lng_idImpuestoTipo_Resumen + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_ImpuestosLineas.ContainsKey(str_AUX))
                                        {
                                            lng_idImpuestoLinea_Resumen = g_dct_ids_GEN_ImpuestosLineas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idImpuestoLinea_Resumen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo_Fechas(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                              lng_idImpuestoCabecera.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                              lng_idImpuestoTipo_Resumen.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_FECHADESDE,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_FECHAHASTA,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idImpuestoLinea_Resumen > -1)
                                            {
                                                g_dct_ids_GEN_ImpuestosLineas.Add(str_AUX, lng_idImpuestoLinea_Resumen);
                                            }
                                        }

                                        //si existe el registro continuo
                                        if (lng_idImpuestoLinea_Resumen > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                      lng_idImpuestoTipo_Resumen.ToString().Trim() + "_" +
                                                      lng_idImpuestoLinea_Resumen.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_COM_FacturasCabeceraResumen.ContainsKey(str_AUX))
                                            {
                                                lng_idFacturaCabeceraCabecera_Resumen = g_dct_ids_COM_FacturasCabeceraResumen[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idFacturaCabeceraCabecera_Resumen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_ID,
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                 lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                 lng_idImpuestoTipo_Resumen.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA,
                                                                                                                                 lng_idImpuestoLinea_Resumen.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idFacturaCabeceraCabecera_Resumen > -1)
                                                {
                                                    g_dct_ids_COM_FacturasCabeceraResumen.Add(str_AUX, lng_idFacturaCabeceraCabecera_Resumen);
                                                }

                                            }


                                            //si no existe inserto
                                            if (lng_idFacturaCabeceraCabecera_Resumen == -1)
                                            {
                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN +
                                                                      " (" +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_PORCENTAJE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_VALOR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL_SINRETENCION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_BASE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idFacturaCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_valor," +
                                                                            "@retencion_Porcentaje," +
                                                                            "@retencion_Valor," +
                                                                            "@total_sinRetencion," +
                                                                            "@retencion_Base," +
                                                                            "@total" +
                                                                      " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                                        new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo_Resumen),
                                                        new SqlParameter("@idImpuestoLinea", lng_idImpuestoLinea_Resumen),
                                                        new SqlParameter("@bruto", mdl_INTERNO_Tabla_Modelo.Objeto_44),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_45),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_46 )
                                                            :   new SqlParameter("@descuentoFinalFactura_Valor",  DBNull.Value),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_Tabla_Modelo.Objeto_47),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_48),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_49),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_50),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_51),
                                                        new SqlParameter("@retencion_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_52),
                                                        new SqlParameter("@retencion_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_53),
                                                        new SqlParameter("@total_sinRetencion", mdl_INTERNO_Tabla_Modelo.Objeto_54),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_55 != null
                                                            ?   new SqlParameter("@retencion_Base", mdl_INTERNO_Tabla_Modelo.Objeto_55 )
                                                            :   new SqlParameter("@retencion_Base",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_56 != null
                                                            ?   new SqlParameter("@total", mdl_INTERNO_Tabla_Modelo.Objeto_56 )
                                                            :   new SqlParameter("@total",  DBNull.Value)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                              lng_idImpuestoTipo_Resumen.ToString().Trim() + "_" +
                                                              lng_idImpuestoLinea_Resumen.ToString().Trim();

                                                    g_dct_ids_COM_FacturasCabeceraResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_43 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorFacturaCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_BASE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL_SINRETENCION,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorFacturaCabecera != null && lst_TotalResumen_PorFacturaCabecera.Count > 0)
                    {
                        long lng_idFacturaCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorFacturaCabecera)
                        {
                            try
                            {
                                lng_idFacturaCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RETENCION_BASE + "=@total_retencion_Base," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL_RETENCION + "=@total_retencion," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTALSINRETENCION + "=@total_sinRetencion," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total_retencion_Base", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total_retencion_Base",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 != null
                                        ?   new SqlParameter("@total_retencion", mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 )
                                        :   new SqlParameter("@total_retencion",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_9 != null
                                        ?   new SqlParameter("@total_sinRetencion", mdl_INTERNO_Totales_Modelo.Campo_Sumado_9 )
                                        :   new SqlParameter("@total_sinRetencion",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_10 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_10 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                    lng_idFacturaCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                lng_idFacturaCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras),
                                                                                                "");
                            }

                        }
                    }

                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_FacturasCompras), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region COM_PedidosCompras
        public INTERNO_ValorDevuelto_Modelo Insertar_PedidosdeCompra(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            decimal dcm_Cero = 0;

            //Identificador
            string str_identificador = "";
            long lng_idPedidoCompraCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idProveedor = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idPredefinidoCabecera_Pedido = -1;
            long lng_idPredefinidoCabecera_Cancelacion = -1;
            long lng_idPredefinidoCabecera_Anulacion = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idPedidoCompra_Anexo = -1;
            long lng_idPedidoCompraLineas = -1;
            long lng_idTipoCompraVenta = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idNomenclaturaPrecio_Lineas = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idProveedorCodigoArticuloProveedor = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idPedidoCompraLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idPedidoCompraLineas_TarifasPromociones = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            List<long> lst_idPedidosCabecera_Insertados = new List<long>();

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_identificador = "";
                        lng_idPedidoCompraCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idProveedor = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idPredefinidoCabecera_Pedido = -1;
                        lng_idPredefinidoCabecera_Cancelacion = -1;
                        lng_idPredefinidoCabecera_Anulacion = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idPedidoCompra_Anexo = -1;
                        lng_idPedidoCompraLineas = -1;
                        lng_idTipoCompraVenta = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio_Lineas = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idProveedorCodigoArticuloProveedor = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idPedidoCompraLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idPedidoCompraLineas_TarifasPromociones = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;
                        lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera
                        if (str_identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }
                            

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }
                                

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                    {
                                        lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProveedor > -1)
                                        {
                                            g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                        }

                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProveedor > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                        {
                                            lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMoneda > -1)
                                            {
                                                g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                            }

                                        }
                                        

                                        //si existe el registro continuo
                                        if (lng_idMoneda > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                      lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }

                                            }
                                            

                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                          lng_idDelegacion.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_COM_PedidosCompraCabecera.ContainsKey(str_AUX))
                                                {
                                                    lng_idPedidoCompraCabecera = g_dct_ids_COM_PedidosCompraCabecera[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPedidoCompraCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                lng_idDelegacion.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPedidoCompraCabecera > -1)
                                                    {
                                                        g_dct_ids_COM_PedidosCompraCabecera.Add(str_AUX, lng_idPedidoCompraCabecera);
                                                    }

                                                }
                                                

                                                //Si no existe inserto el registro
                                                if (lng_idPedidoCompraCabecera == -1)
                                                {
                                                    //Si contiene algo busco el idEmpleado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmpleado > -1)
                                                            {
                                                                g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                            }

                                                        }
                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idEmpleado == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPLEADO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idPredefinidoCabecera_Pedido
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Pedido = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Pedido = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Pedido > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Pedido);
                                                            }

                                                        }
                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Pedido == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_PEDIDO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idPredefinidoCabecera_Cancelacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Cancelacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Cancelacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Cancelacion > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Cancelacion);
                                                            }

                                                        }
                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Cancelacion == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_CANCELACION),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idPredefinidoCabecera_Anulacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Anulacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Anulacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Anulacion > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Anulacion);
                                                            }

                                                        }
                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Anulacion == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ANULACION),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idClaveAnalitica
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_49.ToString().Trim(),
                                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idClaveAnalitica > -1)
                                                            {
                                                                g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                            }

                                                        }
                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idClaveAnalitica == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDCLAVEANALITICA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPROVEEDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDMONEDA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_REFERENCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHAPREVISTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_PEDIDO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_CANCELACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ANULACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_SITUACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_AUTORIZADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_RECARGO + 
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                        "@numeroDocumento," +
                                                                                        "@descripcion," +
                                                                                        "@idDelegacion," +
                                                                                        "@idEmpresa," +
                                                                                        "@fecha," +
                                                                                        "@estado," +
                                                                                        "@idProveedor," +
                                                                                        "@idMoneda," +
                                                                                        "@idImpuestoCabecera," +
                                                                                        "@descuentoProntoPago," +
                                                                                        "@descuentoFinalFactura," +
                                                                                        "@idEmpleado," +
                                                                                        "@referencia," +
                                                                                        "@fechaPrevista," +
                                                                                        "@idPredefinidoCabecera_Pedido," +
                                                                                        "@idPredefinidoCabecera_Cancelacion," +
                                                                                        "@idPredefinidoCabecera_Anulacion," +
                                                                                        "@idClaveAnalitica," +
                                                                                        "@recargo," +
                                                                                        "@situacion," +
                                                                                        "@autorizado," +
                                                                                        "@observaciones," +
                                                                                        "@total," +
                                                                                        "@total_baseImponible," +
                                                                                        "@total_bruto," +
                                                                                        "@total_descuentoFinalFactura," +
                                                                                        "@total_descuentoProntoPago," +
                                                                                        "@total_impuesto," +
                                                                                        "@total_recargo" +
                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                            :   new SqlParameter("@estado",  DBNull.Value),
                                                        new SqlParameter("@idProveedor", lng_idProveedor),
                                                        new SqlParameter("@idMoneda", lng_idMoneda),
                                                        new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                                            ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                                            :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                                            :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                        lng_idEmpleado > -1
                                                            ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                            :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                            ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                            :   new SqlParameter("@referencia",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                                            ?   new SqlParameter("@fechaPrevista", mdl_INTERNO_Tabla_Modelo.Objeto_15 )
                                                            :   new SqlParameter("@fechaPrevista",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Pedido > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Pedido", lng_idPredefinidoCabecera_Pedido )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Pedido",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Cancelacion > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Cancelacion", lng_idPredefinidoCabecera_Cancelacion )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Cancelacion",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Anulacion > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Anulacion", lng_idPredefinidoCabecera_Anulacion )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Anulacion",  DBNull.Value),
                                                        lng_idClaveAnalitica > -1
                                                            ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                            :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                                        new SqlParameter("@situacion", mdl_INTERNO_Tabla_Modelo.Objeto_21),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                            ?   new SqlParameter("@autorizado", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                            :   new SqlParameter("@autorizado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                        new SqlParameter("@total",   dcm_Cero),
                                                        new SqlParameter("@total_baseImponible",   dcm_Cero),
                                                        new SqlParameter("@total_bruto",  dcm_Cero),
                                                        new SqlParameter("@total_descuentoFinalFactura",   dcm_Cero),
                                                        new SqlParameter("@total_descuentoProntoPago",   dcm_Cero),
                                                        new SqlParameter("@total_impuesto",   dcm_Cero),
                                                        new SqlParameter("@total_recargo",   dcm_Cero)
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idPedidoCompraCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                        //Insertados
                                                        lst_idPedidosCabecera_Insertados.Add(lng_idPedidoCompraCabecera);

                                                        //Añadir al Diccionario
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                                  lng_idDelegacion.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");

                                                        g_dct_ids_COM_PedidosCompraCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }

                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDMONEDA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPROVEEDOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDDELEGACION),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idPedidoCompraCabecera > -1)
                        {
                            //si no existe ningun dato no inserto anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_25 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_30 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idPedidoCompraCabecera.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_PedidosCompraCabeceraAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idPedidoCompra_Anexo = g_dct_ids_COM_PedidosCompraCabeceraAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidoCompra_Anexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                               lng_idPedidoCompraCabecera.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidoCompra_Anexo > -1)
                                    {
                                        g_dct_ids_COM_PedidosCompraCabeceraAnexos.Add(str_AUX, lng_idPedidoCompra_Anexo);
                                    }

                                }
                                

                                //Si no existe inserto el registro
                                if (lng_idPedidoCompraCabecera == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS +
                                                                  " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_IDPEDIDOCOMPRACABECERA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_SUOFERTA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_PLAZOENTREGA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_TRANSPORTE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_CONDICIONESESPECIALES + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_PUNTODESTINO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_DOCUMENTACION + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_DESCUENTOS + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_ANEXOS_CAMPO_ATENCIONDE +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                            "@idPedidoCompraCabecera," +
                                                                            "@suOferta," +
                                                                            "@plazoEntrega," +
                                                                            "@transporte," +
                                                                            "@condicionesEspeciales," +
                                                                            "@puntoDestino," +
                                                                            "@documentacion," +
                                                                            "@descuentos," +
                                                                            "@atencionDe" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                                    new SqlParameter("@idPedidoCompraCabecera", lng_idPedidoCompraCabecera),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                        ?   new SqlParameter("@suOferta", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                                        :   new SqlParameter("@suOferta",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                        ?   new SqlParameter("@plazoEntrega", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                        :   new SqlParameter("@plazoEntrega",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_26 != null
                                                        ?   new SqlParameter("@transporte", mdl_INTERNO_Tabla_Modelo.Objeto_26 )
                                                        :   new SqlParameter("@transporte",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                                        ?   new SqlParameter("@condicionesEspeciales", mdl_INTERNO_Tabla_Modelo.Objeto_27 )
                                                        :   new SqlParameter("@condicionesEspeciales",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_28 != null
                                                        ?   new SqlParameter("@puntoDestino", mdl_INTERNO_Tabla_Modelo.Objeto_28 )
                                                        :   new SqlParameter("@puntoDestino",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                        ?   new SqlParameter("@documentacion", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                        :   new SqlParameter("@documentacion",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                        ?   new SqlParameter("@descuentos", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                        :   new SqlParameter("@descuentos",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                        ?   new SqlParameter("@atencionDe", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                        :   new SqlParameter("@atencionDe",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPedidoCompraCabecera.ToString().Trim();

                                        g_dct_ids_COM_PedidosCompraCabeceraAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_PedidosCompraCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //PedidoCompra Cabecera
                                lng_idPedidoCompraCabecera = g_dct_ids_COM_PedidosCompraCabecera[str_AUX];

                                //Si no existe el articulo es un error controlado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                    {
                                        lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTipoCompraVenta > -1)
                                        {
                                            g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idTipoCompraVenta > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : ""),
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                  lng_idEmpresa.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idArticulo > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() : "") + "_" +
                                                      lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                            {
                                                lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                                          lng_idEmpresa.ToString().Trim(),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idAlmacen > -1)
                                                {
                                                    g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                                }

                                            }


                                            //si existe el registro continuo
                                            if (lng_idAlmacen > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                    }

                                                }


                                                //si existe el registro continuo
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                    {
                                                        lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                        {
                                                            g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                        }

                                                    }


                                                    //si existe el registro continuo
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : "");
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                                        {
                                                            lng_idNomenclaturaPrecio_Lineas = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idNomenclaturaPrecio_Lineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                            {
                                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Lineas);
                                                            }

                                                        }


                                                        //si existe el registro continuo
                                                        if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : "") + "_" +
                                                                      lng_idPedidoCompraCabecera.ToString().Trim() + "_" +
                                                                      lng_idArticulo.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_COM_PedidosCompraLinea.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPedidoCompraLineas = g_dct_ids_COM_PedidosCompraLinea[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPedidoCompraLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_ID,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                          lng_idPedidoCompraCabecera.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO,
                                                                                                                          lng_idArticulo.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPedidoCompraLineas > -1)
                                                                {
                                                                    g_dct_ids_COM_PedidosCompraLinea.Add(str_AUX, lng_idPedidoCompraLineas);
                                                                }

                                                            }


                                                            //si no existe inserto
                                                            if (lng_idPedidoCompraLineas == -1)
                                                            {
                                                                //Si contiene algo busco el idProveedorCodigoArticuloProveedor
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                                              lng_idProveedor.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idProveedorCodigoArticuloProveedor = g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idProveedorCodigoArticuloProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR,
                                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_ID,
                                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDARTICULO,
                                                                                                                                                          lng_idArticulo.ToString().Trim(),
                                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDPROVEEDOR,
                                                                                                                                                          lng_idProveedor.ToString().Trim(),
                                                                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idProveedorCodigoArticuloProveedor > -1)
                                                                        {
                                                                            g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.Add(str_AUX, lng_idProveedorCodigoArticuloProveedor);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idProveedorCodigoArticuloProveedor == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }

                                                                //Si contiene algo busco el idUbicacion
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim() + "_" +
                                                                              lng_idEmpresa.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                                                                  lng_idEmpresa.ToString().Trim(),
                                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idUbicacion > -1)
                                                                        {
                                                                            g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idUbicacion == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDUBICACION),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }

                                                                //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                 mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                        {
                                                                            g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idEmbalaje_SegundaUnidad == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }

                                                                //Si contiene algo busco el idImpuestoTipo
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_51 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idImpuestoTipo > -1)
                                                                        {
                                                                            g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idImpuestoTipo == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }

                                                                //Si contiene algo busco el idPedidoCompraLinea_Padre
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_52 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim() + "_" +
                                                                              lng_idArticulo.ToString().Trim() + "_" +
                                                                              lng_idAlmacen.ToString().Trim() + "_" +
                                                                              lng_idEmbalaje.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_COM_PedidosCompraLinea.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idPedidoCompraLinea_Padre = g_dct_ids_COM_PedidosCompraLinea[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idPedidoCompraLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_ID,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO,
                                                                                                                          lng_idArticulo.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDALMACEN,
                                                                                                                          lng_idAlmacen.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDEMBALAJE,
                                                                                                                          lng_idEmbalaje.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idPedidoCompraLinea_Padre > -1)
                                                                        {
                                                                            g_dct_ids_COM_PedidosCompraLinea.Add(str_AUX, lng_idPedidoCompraLinea_Padre);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idPedidoCompraLinea_Padre == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRALINEA_PADRE),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }

                                                                //Si contiene algo busco el EmbalajePrincipal_SegundaUnidad_idEmbalaje
                                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null)
                                                                {
                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim();
                                                                    //......................................................................................

                                                                    if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                    {
                                                                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                    }
                                                                    else
                                                                    {
                                                                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim(),
                                                                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                        //Añadir al Diccionario
                                                                        if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                        {
                                                                            g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                        }

                                                                    }

                                                                    //Si no existe muestro error
                                                                    if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }
                                                                }


                                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS +
                                                                          " (" +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRACABECERA + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDTIPOCOMPRAVENTA + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDALMACEN + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDUBICACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_CANTIDAD + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_RELACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_OPERACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_PRECIO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IMPORTE + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRALINEA_PADRE + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                          " ) " +
                                                                          " OUTPUT INSERTED.id " +
                                                                          " VALUES " +
                                                                          " ( " +
                                                                                      "@idPedidoCompraCabecera," +
                                                                                      "@idTipoCompraVenta," +
                                                                                      "@idProveedorCodigoArticuloProveedor," +
                                                                                      "@idArticulo," +
                                                                                      "@numeroLinea," +
                                                                                      "@idAlmacen," +
                                                                                      "@idUbicacion," +
                                                                                      "@cantidad," +
                                                                                      "@idEmbalaje," +
                                                                                      "@relacion," +
                                                                                      "@operacion," +
                                                                                      "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                      "@segundaUnidad_relacion," +
                                                                                      "@segundaUnidad_idEmbalaje," +
                                                                                      "@segundaUnidad_cantidad," +
                                                                                      "@idNomenclaturaPrecio," +
                                                                                      "@precio," +
                                                                                      "@numeroRedondeo," +
                                                                                      "@descuentoGeneral," +
                                                                                      "@importe," +
                                                                                      "@idImpuestoTipo," +
                                                                                      "@idPedidoCompraLinea_Padre," +
                                                                                      "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                      "@embalajePrincipalDelArticulo_relacion," +
                                                                                      "@embalajePrincipalDelArticulo_operacion," +
                                                                                      "@embalajePrincipalDelArticulo_precio," +
                                                                                      "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                      "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                      "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                          " ) ";

                                                                //Parametros
                                                                object[] arr_Parametros_Insert = new object[]
                                                                {
                                                                    new SqlParameter("@idPedidoCompraCabecera", lng_idPedidoCompraCabecera),
                                                                    new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta),
                                                                    lng_idProveedorCodigoArticuloProveedor > -1
                                                                        ?   new SqlParameter("@idProveedorCodigoArticuloProveedor", lng_idProveedorCodigoArticuloProveedor )
                                                                        :   new SqlParameter("@idProveedorCodigoArticuloProveedor",  DBNull.Value),
                                                                    new SqlParameter("@idArticulo", lng_idArticulo),
                                                                    new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_35),
                                                                    new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                                    lng_idUbicacion > -1
                                                                        ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                                        :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                                    new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_38),
                                                                    new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                                    new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_40),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                                        ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                                        :   new SqlParameter("@operacion",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                                        ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                                                        :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                                                        ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_43 )
                                                                        :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                                    lng_idEmbalaje_SegundaUnidad > -1
                                                                        ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                                        :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                                                       ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_45 )
                                                                       :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                                    new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio_Lineas),
                                                                    new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_47),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                                                       ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                                                       :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                                                       ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_49 )
                                                                       :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                                                       ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_50 )
                                                                       :   new SqlParameter("@importe",  DBNull.Value),
                                                                    lng_idImpuestoTipo > -1
                                                                        ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                                        :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                                    lng_idPedidoCompraLinea_Padre > -1
                                                                        ?   new SqlParameter("@idPedidoCompraLinea_Padre", lng_idPedidoCompraLinea_Padre )
                                                                        :   new SqlParameter("@idPedidoCompraLinea_Padre",  DBNull.Value),
                                                                    new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                                    new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_54),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_55 != null
                                                                       ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_55 )
                                                                       :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                                    new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_56 ),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_57 != null
                                                                       ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_57 )
                                                                       :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_58 != null
                                                                       ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_58 )
                                                                       :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                                       ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                                       :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value)
                                                                };

                                                                //Llamamos a la funcion de insertar
                                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                                //Todo Correcto
                                                                else
                                                                {
                                                                    lng_idPedidoCompraLineas = mdl_ValorDevuelto_Modelo.Id;

                                                                    //Añadir al Diccionario
                                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : "") + "_" +
                                                                                  lng_idPedidoCompraCabecera.ToString().Trim() + "_" +
                                                                                  lng_idArticulo.ToString().Trim();

                                                                    g_dct_ids_COM_PedidosCompraLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                                }

                                                            }
                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDALMACEN),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDTIPOCOMPRAVENTA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifacPromociones ###########################################################################################
                        if (lng_idPedidoCompraLineas > -1)
                        {
                            //Si no existe el codigo no lo introduzco
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() + "_" +
                                          lng_idPedidoCompraLineas.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_PedidosCompraLineaTarifasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idPedidoCompraLineas_TarifasPromociones = g_dct_ids_COM_PedidosCompraLineaTarifasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidoCompraLineas_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_IDPEDIDOCOMPRALINEA,
                                                                                                                           lng_idPedidoCompraLineas.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidoCompraLineas_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_COM_PedidosCompraLineaTarifasPromociones.Add(str_AUX, lng_idPedidoCompraLineas_TarifasPromociones);
                                    }

                                }
                                

                                //si no existe inserto
                                if (lng_idPedidoCompraLineas == -1)
                                {
                                    //Si contiene algo busco el lng_idNomenclaturaPrecio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_72 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }

                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_77 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                     lng_idEmpresa.ToString(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }

                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_78 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }

                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_IDPEDIDOCOMPRALINEA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                             "@idPedidoCompraLinea," +
                                                                             "@codigo," +
                                                                             "@descripcion," +
                                                                             "@descuento_1," +
                                                                             "@descuento_2," +
                                                                             "@descuento_3," +
                                                                             "@descuento_4," +
                                                                             "@descuento_5," +
                                                                             "@incremento," +
                                                                             "@numeroRedondeo," +
                                                                             "@tipo," +
                                                                             "@precioFijoDinamico," +
                                                                             "@precio," +
                                                                             "@idNomenclaturaPrecio," +
                                                                             "@descuentoMoneda," +
                                                                             "@AB_Cantidad_A," +
                                                                             "@AB_Cantidad_B," +
                                                                             "@AB_Porcentaje," +
                                                                             "@AB_idArticulo," +
                                                                             "@AB_idEmbalaje," +
                                                                             "@AB_Cancelado," +
                                                                             "@orden," +
                                                                             "@mensaje_Error," +
                                                                             "@desactivado," +
                                                                             "@noAplicarTarifa," +
                                                                             "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idPedidoCompraLinea", lng_idPedidoCompraLineas),
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_60),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_61),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_62 != null
                                        ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_62 )
                                        :   new SqlParameter("@descuento_1",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_63 != null
                                        ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_63 )
                                        :   new SqlParameter("@descuento_2",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_64 != null
                                        ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_64 )
                                        :   new SqlParameter("@descuento_3",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                        ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                        :   new SqlParameter("@descuento_4",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_66 != null
                                        ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_66 )
                                        :   new SqlParameter("@descuento_5",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                        ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                        :   new SqlParameter("@incremento",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_68 != null
                                        ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_68 )
                                        :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                    new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_69 ),
                                    new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_70 ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_71 != null
                                        ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_71 )
                                        :   new SqlParameter("@precio",  DBNull.Value),
                                    lng_idNomenclaturaPrecio > -1
                                        ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio )
                                        :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                        ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                        :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                        ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                        :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_75!= null
                                        ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_75 )
                                        :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_76!= null
                                        ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_76 )
                                        :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                    lng_AB_idArticulo > -1
                                        ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                        :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                    lng_AB_idEmbalaje > -1
                                        ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                        :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_79 != null
                                        ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                        :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                    new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_80 ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                        ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                        :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_82!= null
                                        ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                        :   new SqlParameter("@desactivado",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_83 != null
                                        ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_83 )
                                        :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                        ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_85)
                                        :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idPedidoCompraLineas_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() : "") + "_" +
                                          lng_idPedidoCompraLineas.ToString().Trim();

                                        g_dct_ids_COM_PedidosCompraLineaTarifasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idPedidoCompraLineas_TarifasPromociones > -1)
                        {
                            //Si no existe el primer registro no lo tengo en cuenta
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_87 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_88 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_89 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_90 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_91 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_92 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_93 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idPedidoCompraLineas_TarifasPromociones.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes = g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPEDIDOCOMPRALINEATARIFAPROMOCION,
                                                                                             lng_idPedidoCompraLineas_TarifasPromociones.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes.Add(str_AUX, lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes);
                                    }

                                }
                               

                                //si no existe inserto
                                if (lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPEDIDOCOMPRALINEATARIFAPROMOCION + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idPedidoCompraLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idPedidoCompraLineaTarifaPromocion", lng_idPedidoCompraLineas_TarifasPromociones ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                        ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                        :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_86 != null
                                        ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_86 )
                                        :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_87 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_87 )
                                        :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_88 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_88 )
                                        :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_89 != null
                                        ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_89 )
                                        :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_90 != null
                                        ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_90 )
                                        :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_91 != null
                                        ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_91 )
                                        :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_92 != null
                                        ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_92 )
                                        :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_93 != null
                                        ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_93 )
                                        :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = lng_idPedidoCompraLineas_TarifasPromociones_Condicionantes.ToString().Trim();

                                        g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }

                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPEDIDOCOMPRALINEATARIFAPROMOCION,
                                                                                                                         lng_idPedidoCompraLineas.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idPedidosCabecera_Insertados.Count>0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idPedidoCompraCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";

                        foreach (long lng_idPedidoCabecera in lst_idPedidosCabecera_Insertados)
                        {
                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas( Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                                                                lng_idPedidoCabecera,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                "",
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo=Funciones_TraspasoDatos.Obtener_DatosCabecera(  Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID,
                                                                                                                                lng_idPedidoCabecera,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDPROVEEDOR,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo!=null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_PROVEEDOR_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null && 
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idPedidoCompraCabecera", lng_idPedidoCabecera),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                        new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                               lng_idPedidoCabecera.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idPedidoCabecera.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_COM_PedidosCompraResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN,
                                                                                                                                   lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN,
                                                                                                                                   lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(  Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                                        lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                        lng_idPedidoCabecera.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                        "");

                            }
                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorPedidoCabecera=Funciones_TraspasoDatos.Obtener_ResumenTotal(   Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR ,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR ,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR ,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR ,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorPedidoCabecera!=null && lst_TotalResumen_PorPedidoCabecera.Count>0)
                    {
                        long lng_idPedidoCompraCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorPedidoCabecera)
                        {
                            try
                            {
                                lng_idPedidoCompraCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                      mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                       mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                                                    lng_idPedidoCompraCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_RESUMEN_CAMPO_IDPEDIDOCOMPRACABECERA,
                                                                                                lng_idPedidoCompraCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                "");
                            }

                        }
                    }

                    #endregion

                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region COM_SolicitudesOferta
        public INTERNO_ValorDevuelto_Modelo Insertar_SolicitudesDeOfertas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idSolicitudOfertaCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idProveedor = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idPedidoCompraCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idSolicitudOfertaCabecera_Anexo = -1;
            long lng_idSolicitudOfertaLineas = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idNomenclaturaPrecio_Lineas = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idProveedorCodigoArticuloProveedor = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idSolicitudOfertaLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idSolicitudOfertaLineas_TarifasPromociones = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            List<long> lst_idSolicitudesCabecera_Insertados = new List<long>();

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idSolicitudOfertaCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idProveedor = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idPedidoCompraCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idSolicitudOfertaCabecera_Anexo = -1;
                        lng_idSolicitudOfertaLineas = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio_Lineas = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idProveedorCodigoArticuloProveedor = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idSolicitudOfertaLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idSolicitudOfertaLineas_TarifasPromociones = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;
                        lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera

                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }

                                

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                    {
                                        lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProveedor > -1)
                                        {
                                            g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                        }

                                    }

                                    

                                    //si existe el registro continuo
                                    if (lng_idProveedor > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                        {
                                            lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMoneda > -1)
                                            {
                                                g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                            }

                                        }

                                        

                                        //si existe el registro continuo
                                        if (lng_idMoneda > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                      lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }

                                            }

                                            

                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                          lng_idDelegacion.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_COM_SolicitudesOfertaCabecera.ContainsKey(str_AUX))
                                                {
                                                    lng_idSolicitudOfertaCabecera = g_dct_ids_COM_SolicitudesOfertaCabecera[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idSolicitudOfertaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_ID,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDDELEGACION,
                                                                                                                             lng_idDelegacion.ToString().Trim(),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPRESA,
                                                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_FECHA,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idSolicitudOfertaCabecera > -1)
                                                    {
                                                        g_dct_ids_COM_SolicitudesOfertaCabecera.Add(str_AUX, lng_idSolicitudOfertaCabecera);
                                                    }

                                                }

                                                //Si no existe inserto el registro
                                                if (lng_idSolicitudOfertaCabecera == -1)
                                                {
                                                    //Si contiene algo busco el idPedidoCompraCabecera
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_COM_PedidosCompraCabecera.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPedidoCompraCabecera = g_dct_ids_COM_PedidosCompraCabecera[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPedidoCompraCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA,
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_ID,
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_COM_PEDIDOSCOMPRASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                     lng_idEmpresa.ToString().Trim(),
                                                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPedidoCompraCabecera > -1)
                                                            {
                                                                g_dct_ids_COM_PedidosCompraCabecera.Add(str_AUX, lng_idPedidoCompraCabecera);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPedidoCompraCabecera == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDPEDIDOCOMPRACABECERA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    //Si contiene algo busco el idEmpleado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmpleado > -1)
                                                            {
                                                                g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idEmpleado == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPLEADO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_DESCRIPCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDDELEGACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_FECHA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDPROVEEDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDMONEDA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDPEDIDOCOMPRACABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_SITUACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_RECARGO +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                        "@numeroDocumento," +
                                                                                        "@descripcion," +
                                                                                        "@idDelegacion," +
                                                                                        "@idEmpresa," +
                                                                                        "@fecha," +
                                                                                        "@estado," +
                                                                                        "@idProveedor," +
                                                                                        "@idMoneda," +
                                                                                        "@idImpuestoCabecera," +
                                                                                        "@idPedidoCompraCabecera," +
                                                                                        "@situacion," +
                                                                                        "@descuentoProntoPago," +
                                                                                        "@descuentoFinalFactura," +
                                                                                        "@idEmpleado," +
                                                                                        "@recargo," +
                                                                                        "@observaciones," +
                                                                                        "@total," +
                                                                                        "@total_baseImponible," +
                                                                                        "@total_bruto," +
                                                                                        "@total_descuentoFinalFactura," +
                                                                                        "@total_descuentoProntoPago," +
                                                                                        "@total_impuesto," +
                                                                                        "@total_recargo" +
                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                    new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                    new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                    new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                        ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                        :   new SqlParameter("@estado",  DBNull.Value),
                                                    new SqlParameter("@idProveedor", lng_idProveedor),
                                                    new SqlParameter("@idMoneda", lng_idMoneda),
                                                    new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                    lng_idPedidoCompraCabecera > -1
                                                        ?   new SqlParameter("@idPedidoCompraCabecera", lng_idPedidoCompraCabecera )
                                                        :   new SqlParameter("@idPedidoCompraCabecera",  DBNull.Value),
                                                    new SqlParameter("@situacion", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                        ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                        :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                        ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                        :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                    lng_idEmpleado > -1
                                                        ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                        :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                        ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                        :   new SqlParameter("@recargo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                                    new SqlParameter("@total",   DBNull.Value),
                                                    new SqlParameter("@total_baseImponible",   DBNull.Value),
                                                    new SqlParameter("@total_bruto",   DBNull.Value),
                                                    new SqlParameter("@total_descuentoFinalFactura",   DBNull.Value),
                                                    new SqlParameter("@total_descuentoProntoPago",   DBNull.Value),
                                                    new SqlParameter("@total_impuesto",   DBNull.Value),
                                                    new SqlParameter("@total_recargo",   DBNull.Value)
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idSolicitudOfertaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                        //Insertados
                                                        lst_idSolicitudesCabecera_Insertados.Add(lng_idSolicitudOfertaCabecera);

                                                        //Añadir al Diccionario
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                           lng_idDelegacion.ToString().Trim() + "_" +
                                                           lng_idEmpresa.ToString().Trim() + "_" +
                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");

                                                        g_dct_ids_COM_SolicitudesOfertaCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDMONEDA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDPROVEEDOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDDELEGACION),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPRESA),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idSolicitudOfertaCabecera > -1)
                        {
                            //si no existe ningun dato no inserto anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_19 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_22 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idSolicitudOfertaCabecera.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idSolicitudOfertaCabecera_Anexo = g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idSolicitudOfertaCabecera_Anexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                               lng_idSolicitudOfertaCabecera.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idSolicitudOfertaCabecera_Anexo > -1)
                                    {
                                        g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos.Add(str_AUX, lng_idSolicitudOfertaCabecera_Anexo);
                                    }

                                }

                                

                                //Si no existe inserto el registro
                                if (lng_idSolicitudOfertaCabecera_Anexo == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS +
                                                                  " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_IDSOLICITUDOFERTACABECERA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_SUOFERTA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_PLAZOENTREGA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_TRANSPORTE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_CONDICIONESESPECIALES + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_PUNTODESTINO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_DOCUMENTACION + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_DESCUENTOS + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_ANEXOS_CAMPO_ATENCIONDE +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                            "@idSolicitudOfertaCabecera," +
                                                                            "@suOferta," +
                                                                            "@plazoEntrega," +
                                                                            "@transporte," +
                                                                            "@condicionesEspeciales," +
                                                                            "@puntoDestino," +
                                                                            "@documentacion," +
                                                                            "@descuentos," +
                                                                            "@atencionDe" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                                    new SqlParameter("@idSolicitudOfertaCabecera", lng_idSolicitudOfertaCabecera),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                        ?   new SqlParameter("@suOferta", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                        :   new SqlParameter("@suOferta",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                        ?   new SqlParameter("@plazoEntrega", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                        :   new SqlParameter("@plazoEntrega",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                        ?   new SqlParameter("@transporte", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                        :   new SqlParameter("@transporte",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                        ?   new SqlParameter("@condicionesEspeciales", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                        :   new SqlParameter("@condicionesEspeciales",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                        ?   new SqlParameter("@puntoDestino", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                        :   new SqlParameter("@puntoDestino",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                                        ?   new SqlParameter("@documentacion", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                                        :   new SqlParameter("@documentacion",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                        ?   new SqlParameter("@descuentos", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                                        :   new SqlParameter("@descuentos",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                        ?   new SqlParameter("@atencionDe", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                        :   new SqlParameter("@atencionDe",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idSolicitudOfertaCabecera.ToString().Trim();

                                        g_dct_ids_COM_SolicitudesOfertaCabeceraAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_COM_SolicitudesOfertaCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //SolicitudOferta Cabecera
                                lng_idSolicitudOfertaCabecera = g_dct_ids_COM_SolicitudesOfertaCabecera[str_AUX];


                                //Si no existe el articulo es un error controlado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                    {
                                        lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                              lng_idEmpresa.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticulo > -1)
                                        {
                                            g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                        }

                                    }



                                    //si existe el registro continuo
                                    if (lng_idArticulo > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                        {
                                            lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                                     lng_idEmpresa.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlmacen > -1)
                                            {
                                                g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                            }

                                        }



                                        //si existe el registro continuo
                                        if (lng_idAlmacen > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                }

                                            }



                                            //si existe el registro continuo
                                            if (lng_idEmbalaje > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                    }

                                                }



                                                //si existe el registro continuo
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                                    {
                                                        lng_idNomenclaturaPrecio_Lineas = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idNomenclaturaPrecio_Lineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                        {
                                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Lineas);
                                                        }

                                                    }



                                                    //si existe el registro continuo
                                                    if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                  lng_idSolicitudOfertaCabecera.ToString().Trim() + "_" +
                                                                  lng_idArticulo.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_COM_SolicitudesOfertaLinea.ContainsKey(str_AUX))
                                                        {
                                                            lng_idSolicitudOfertaLineas = g_dct_ids_COM_SolicitudesOfertaLinea[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idSolicitudOfertaLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                      lng_idSolicitudOfertaCabecera.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO,
                                                                                                                        lng_idArticulo.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idSolicitudOfertaLineas > -1)
                                                            {
                                                                g_dct_ids_COM_SolicitudesOfertaLinea.Add(str_AUX, lng_idSolicitudOfertaLineas);
                                                            }

                                                        }



                                                        //si no existe inserto
                                                        if (lng_idSolicitudOfertaLineas == -1)
                                                        {
                                                            //Si contiene algo busco el idProveedorCodigoArticuloProveedor
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                                          lng_idProveedor.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idProveedorCodigoArticuloProveedor = g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idProveedorCodigoArticuloProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR,
                                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_ID,
                                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDARTICULO,
                                                                                                                                                      lng_idArticulo.ToString().Trim(),
                                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CODIGOSARTICULOPROVEEDOR_CAMPO_IDPROVEEDOR,
                                                                                                                                                      lng_idProveedor.ToString().Trim(),
                                                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idProveedorCodigoArticuloProveedor > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Proveedores_CodigosArticuoProveedor.Add(str_AUX, lng_idProveedorCodigoArticuloProveedor);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idProveedorCodigoArticuloProveedor == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idUbicacion
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() + "_" +
                                                                          lng_idEmpresa.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                                                              lng_idEmpresa.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idUbicacion > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idUbicacion == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDUBICACION),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idImpuestoTipo
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idImpuestoTipo > -1)
                                                                    {
                                                                        g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idImpuestoTipo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el idSolicitudOfertaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_45 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim() + "_" +
                                                                          lng_idArticulo.ToString().Trim() + "_" +
                                                                          lng_idAlmacen.ToString().Trim() + "_" +
                                                                          lng_idEmbalaje.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_COM_SolicitudesOfertaLinea.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idSolicitudOfertaLinea_Padre = g_dct_ids_COM_SolicitudesOfertaLinea[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idSolicitudOfertaLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO,
                                                                                                                      lng_idArticulo.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDALMACEN,
                                                                                                                      lng_idAlmacen.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDEMBALAJE,
                                                                                                                      lng_idEmbalaje.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idSolicitudOfertaLinea_Padre > -1)
                                                                    {
                                                                        g_dct_ids_COM_SolicitudesOfertaLinea.Add(str_AUX, lng_idSolicitudOfertaLinea_Padre);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idSolicitudOfertaLinea_Padre == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDSOLICITUDOFERTALINEA_PADRE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                            //Si contiene algo busco el EmbalajePrincipal_SegundaUnidad_idEmbalaje
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_52 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }


                                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS +
                                                                      " (" +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDSOLICITUDOFERTACABECERA + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDPROVEEDORCODIGOARTICULOPROVEEDOR + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDALMACEN + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDUBICACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_CANTIDAD + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_RELACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_OPERACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_PRECIO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IMPORTE + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDSOLICITUDOFERTALINEA_PADRE + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                                  "@idSolicitudOfertaCabecera," +
                                                                                  "@idProveedorCodigoArticuloProveedor," +
                                                                                  "@idArticulo," +
                                                                                  "@numeroLinea," +
                                                                                  "@idAlmacen," +
                                                                                  "@idUbicacion," +
                                                                                  "@cantidad," +
                                                                                  "@idEmbalaje," +
                                                                                  "@relacion," +
                                                                                  "@operación," +
                                                                                  "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                  "@segundaUnidad_relacion," +
                                                                                  "@segundaUnidad_idEmbalaje," +
                                                                                  "@segundaUnidad_cantidad," +
                                                                                  "@idNomenclaturaPrecio," +
                                                                                  "@precio," +
                                                                                  "@numeroRedondeo," +
                                                                                  "@descuentoGeneral," +
                                                                                  "@importe," +
                                                                                  "@idImpuestoTipo," +
                                                                                  "@idSolicitudOfertaLinea_Padre," +
                                                                                  "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                  "@embalajePrincipalDelArticulo_relacion," +
                                                                                  "@embalajePrincipalDelArticulo_operacion," +
                                                                                  "@embalajePrincipalDelArticulo_precio," +
                                                                                  "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                  "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                  "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                      " ) ";

                                                            //Parametros
                                                            object[] arr_Parametros_Insert = new object[]
                                                            {
                                                                new SqlParameter("@idSolicitudOfertaCabecera", lng_idSolicitudOfertaCabecera),
                                                                lng_idProveedorCodigoArticuloProveedor > -1
                                                                    ?   new SqlParameter("@idProveedorCodigoArticuloProveedor", lng_idProveedorCodigoArticuloProveedor )
                                                                    :   new SqlParameter("@idProveedorCodigoArticuloProveedor",  DBNull.Value),
                                                                new SqlParameter("@idArticulo", lng_idArticulo),
                                                                new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_28),
                                                                new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                                lng_idUbicacion > -1
                                                                    ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                                    :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                                new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_31),
                                                                new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                                new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_33),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                                    ?   new SqlParameter("@operación", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                                    :   new SqlParameter("@operación",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                                    ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_35 )
                                                                    :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                                    ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_36 )
                                                                    :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_SegundaUnidad > -1
                                                                    ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                                    :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                                   ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                                   :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                                new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio_Lineas),
                                                                new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_40),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                                   ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                                   :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                                   ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                                                   :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                                                   ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_43 )
                                                                   :   new SqlParameter("@importe",  DBNull.Value),
                                                                lng_idImpuestoTipo > -1
                                                                    ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                                    :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                                lng_idSolicitudOfertaLinea_Padre > -1
                                                                    ?   new SqlParameter("@idSolicitudOfertaLinea_Padre", lng_idSolicitudOfertaLinea_Padre )
                                                                    :   new SqlParameter("@idSolicitudOfertaLinea_Padre",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_47),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                                                   ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                                                   :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_49 ),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                                                   ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_50 )
                                                                   :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_51 != null
                                                                   ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_51 )
                                                                   :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                                   ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                                   :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value)
                                                            };

                                                            //Llamamos a la funcion de insertar
                                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                            //Todo Correcto
                                                            else
                                                            {
                                                                lng_idSolicitudOfertaLineas = mdl_ValorDevuelto_Modelo.Id;

                                                                //Añadir al Diccionario
                                                                str_AUX =   (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                            lng_idSolicitudOfertaCabecera.ToString().Trim() +"_" +
                                                                            lng_idArticulo.ToString().Trim();

                                                                g_dct_ids_COM_SolicitudesOfertaLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                            }

                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDEMBALAJE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDALMACEN),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifaPromociones ###########################################################################################
                        if (lng_idSolicitudOfertaLineas > -1)
                        {
                            //Si no tiene codigo no lo inserto
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() + "_" +
                                          lng_idSolicitudOfertaLineas.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idSolicitudOfertaLineas_TarifasPromociones = g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idSolicitudOfertaLineas_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_IDSOLICITUDOFERTALINEA,
                                                                                                                              lng_idSolicitudOfertaLineas.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idSolicitudOfertaLineas_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones.Add(str_AUX, lng_idSolicitudOfertaLineas_TarifasPromociones);
                                    }

                                }

                                

                                //si no existe inserto
                                if (lng_idSolicitudOfertaLineas_TarifasPromociones == -1)
                                {
                                    //Si contiene algo busco el idNomenclaturaPrecio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_65 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_65.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_65.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }

                                        }

                                        
                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_65.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_70 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                     lng_idEmpresa.ToString(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_71 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_IDSOLICITUDOFERTALINEA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                             "@idSolicitudOfertaLinea," +
                                                                             "@codigo," +
                                                                             "@descripcion," +
                                                                             "@descuento_1," +
                                                                             "@descuento_2," +
                                                                             "@descuento_3," +
                                                                             "@descuento_4," +
                                                                             "@descuento_5," +
                                                                             "@incremento," +
                                                                             "@numeroRedondeo," +
                                                                             "@tipo," +
                                                                             "@precioFijoDinamico," +
                                                                             "@precio," +
                                                                             "@idNomenclaturaPrecio," +
                                                                             "@descuentoMoneda," +
                                                                             "@AB_Cantidad_A," +
                                                                             "@AB_Cantidad_B," +
                                                                             "@AB_Porcentaje," +
                                                                             "@AB_idArticulo," +
                                                                             "@AB_idEmbalaje," +
                                                                             "@AB_Cancelado," +
                                                                             "@orden," +
                                                                             "@mensaje_Error," +
                                                                             "@desactivado," +
                                                                             "@noAplicarTarifa," +
                                                                             "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idSolicitudOfertaLinea", lng_idSolicitudOfertaLineas),
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_53),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_54),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_55 != null
                                            ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_55 )
                                            :   new SqlParameter("@descuento_1",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_56 != null
                                            ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_56 )
                                            :   new SqlParameter("@descuento_2",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_57 != null
                                            ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_57 )
                                            :   new SqlParameter("@descuento_3",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_58 != null
                                            ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_58 )
                                            :   new SqlParameter("@descuento_4",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                            ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_59 )
                                            :   new SqlParameter("@descuento_5",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_60 != null
                                            ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_60 )
                                            :   new SqlParameter("@incremento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_61 != null
                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_61 )
                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_62 ),
                                        new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_63 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_64 != null
                                            ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_64 )
                                            :   new SqlParameter("@precio",  DBNull.Value),
                                        lng_idNomenclaturaPrecio > -1
                                            ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio )
                                            :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_66 != null
                                            ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_66 )
                                            :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                            ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                            :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_68 != null
                                            ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_68 )
                                            :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                            ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                            :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                        lng_AB_idArticulo > -1
                                            ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                            :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                        lng_AB_idEmbalaje > -1
                                            ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                            :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                            ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                            :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                        new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_73 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                            ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                            :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_75 != null
                                            ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_75 )
                                            :   new SqlParameter("@desactivado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_76 != null
                                            ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_76 )
                                            :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_77 != null
                                            ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_77 )
                                            :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //TodoCorrecto
                                    else
                                    {
                                        lng_idSolicitudOfertaLineas_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : "") + "_" +
                                          lng_idSolicitudOfertaLineas.ToString().Trim();

                                        g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idSolicitudOfertaLineas_TarifasPromociones > -1)
                        {
                            //si el principio de los condicionantes no esta relleno no se rellena
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_78 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_80 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_81 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_82 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_83 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_86 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idSolicitudOfertaLineas_TarifasPromociones.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromocionesCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes = g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromocionesCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDSOLICITUDOFERTALINEATARIFAPROMOCION,
                                                                                              lng_idSolicitudOfertaLineas_TarifasPromociones.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_COM_SolicitudesOfertaLineaTarifasPromocionesCondicionantes.Add(str_AUX, lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes);
                                    }

                                }

                                

                                //si no existe inserto
                                if (lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDSOLICITUDOFERTALINEATARIFAPROMOCION + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                          Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idSolicitudOfertaLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idSolicitudOfertaLineaTarifaPromocion", lng_idSolicitudOfertaLineas_TarifasPromociones ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_78 != null
                                        ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_78 )
                                        :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_79 != null
                                        ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                        :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_80 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_80 )
                                        :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                        :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                        ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                        :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_83 != null
                                        ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_83 )
                                        :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_84 != null
                                        ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_84 )
                                        :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                        ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                        :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_86 != null
                                        ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_86 )
                                        :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //TodoCorrecto
                                    else
                                    {
                                        lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = lng_idSolicitudOfertaLineas_TarifasPromociones_Condicionantes.ToString().Trim();

                                        g_dct_ids_COM_PedidosCompraLineaTarifasPromocionesCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDSOLICITUDOFERTALINEATARIFAPROMOCION,
                                                                                                                         lng_idSolicitudOfertaLineas.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_TARIFASPROMOCIONES_CONDICIONANTES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idSolicitudesCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idSolicitudOfertaCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";

                        foreach (long lng_idSolicitudCabecera in lst_idSolicitudesCabecera_Insertados)
                        {
                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                                                                                lng_idSolicitudCabecera,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                "",
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTALINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_ID,
                                                                                                                                lng_idSolicitudCabecera,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDPROVEEDOR,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_PROVEEDOR_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idSolicitudOfertaCabecera", lng_idSolicitudCabecera),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                        new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                                               lng_idSolicitudCabecera.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idSolicitudCabecera.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_COM_SolicitudesOfertaResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN,
                                                                                                                                   lng_idSolicitudCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN,
                                                                                                                                   lng_idSolicitudCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                                                        lng_idSolicitudCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                        lng_idSolicitudCabecera.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                        "");

                            }
                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorSolicitudOfertaCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorSolicitudOfertaCabecera != null && lst_TotalResumen_PorSolicitudOfertaCabecera.Count > 0)
                    {
                        long lng_idSolicitudOfertaCabecera_Resumen_AUX = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorSolicitudOfertaCabecera)
                        {
                            try
                            {
                                lng_idSolicitudOfertaCabecera_Resumen_AUX = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                      mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                       mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                                                    lng_idSolicitudOfertaCabecera_Resumen_AUX.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_SOLICITUDESOFERTACABECERA_RESUMEN_CAMPO_IDSOLICITUDOFERTACABECERA,
                                                                                                lng_idSolicitudOfertaCabecera_Resumen_AUX.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas),
                                                                                                "");
                            }

                        }
                    }
                    #endregion

                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_SolicitudesDeOfertas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //CTA ################################################
        #region CTA_Amortizaciones
        public INTERNO_ValorDevuelto_Modelo Insertar_Amortizaciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idAmortizacionCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            long lng_idPredefinidoCabecera = -1;
            long lng_idMayor_CuentaAmortizacionAcumulada = -1;
            long lng_idAmortizacionLineas = -1;
            long lng_idInmovilizado = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idAmortizacionCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        lng_idPredefinidoCabecera = -1;
                        lng_idMayor_CuentaAmortizacionAcumulada = -1;
                        lng_idAmortizacionLineas = -1;
                        lng_idInmovilizado = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                                
                            }
                            

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim() + "_" +
                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") ;
                                //......................................................................................

                                if (g_dct_ids_CTA_AmortizacionesCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idAmortizacionCabecera = g_dct_ids_CTA_AmortizacionesCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idAmortizacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA,
                                                                                                          lng_idEmpresa.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_FECHA,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAmortizacionCabecera>-1)
                                    {
                                        g_dct_ids_CTA_AmortizacionesCabecera.Add(str_AUX, lng_idAmortizacionCabecera);
                                    }
                                }
                                
                                //Si no existe inserto el registro
                                if (lng_idAmortizacionCabecera == -1)
                                {
                                    //Si contiene algo busco el idDElegacion
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                        {
                                            lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idDelegacion > -1)
                                            {
                                                g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idDelegacion == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDDELEGACION),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idPredefinidoCabecera
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                        {
                                            lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPredefinidoCabecera > -1)
                                            {
                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                            }
                                           
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idPredefinidoCabecera == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDPREDEFINIDOCABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idPredefinidoCabecera_Negociacion
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_CuentaAmortizacionAcumulada = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_CuentaAmortizacionAcumulada = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_CuentaAmortizacionAcumulada > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaAmortizacionAcumulada);
                                            }
                                           
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_CuentaAmortizacionAcumulada == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDMAYOR_CUENTAAMORTIZACIONACUMULADA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA +
                                                                " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_FECHA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_FECHAAMORTIZACION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NATURALEZA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDDELEGACION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDPREDEFINIDOCABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDMAYOR_CUENTAAMORTIZACIONACUMULADA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_ESTADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                             "@numeroDocumento," +
                                                                             "@fecha," +
                                                                             "@fechaAmortizacion," +
                                                                             "@naturaleza," +
                                                                             "@idDelegacion," +
                                                                             "@idPredefinidoCabecera," +
                                                                             "@idMayor_CuentaAmortizacionAcumulada," +
                                                                             "@estado," +
                                                                             "@idEmpresa" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                        new SqlParameter("@fechaAmortizacion", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                        new SqlParameter("@naturaleza", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                        lng_idDelegacion > -1
                                            ?   new SqlParameter("@idDelegacion", lng_idDelegacion )
                                            :   new SqlParameter("@idDelegacion",  DBNull.Value),
                                        lng_idPredefinidoCabecera > -1
                                            ?   new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera )
                                            :   new SqlParameter("@idPredefinidoCabecera",  DBNull.Value),
                                        lng_idMayor_CuentaAmortizacionAcumulada > -1
                                            ?   new SqlParameter("@idMayor_CuentaAmortizacionAcumulada", lng_idMayor_CuentaAmortizacionAcumulada )
                                            :   new SqlParameter("@idMayor_CuentaAmortizacionAcumulada",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                            :   new SqlParameter("@estado",  DBNull.Value),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //Todo Correcto
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                                        g_dct_ids_CTA_AmortizacionesCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Lineas
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_LINEA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" + 
                                            lng_idEmpresa;
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                         lng_idEmpresa.ToString(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmpresa > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : "") + "_" +
                                          lng_idDelegacion.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Inmovilizados.ContainsKey(str_AUX))
                                    {
                                        lng_idInmovilizado = g_dct_ids_CTA_Inmovilizados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInmovilizado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NUMEROORDEN,
                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : ""),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDELEGACION,
                                                                                                      lng_idDelegacion.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDEMPRESA,
                                                                                                      lng_idEmpresa.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInmovilizado > -1)
                                        {
                                            g_dct_ids_CTA_Inmovilizados.Add(str_AUX, lng_idInmovilizado);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idInmovilizado > -1)
                                    {

                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_AmortizacionesCabecera.ContainsKey(str_AUX))
                                        {
                                            lng_idAmortizacionCabecera = g_dct_ids_CTA_AmortizacionesCabecera[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAmortizacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                  lng_idEmpresa.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAmortizacionCabecera > -1)
                                            {
                                                g_dct_ids_CTA_AmortizacionesCabecera.Add(str_AUX, lng_idAmortizacionCabecera);
                                            }
                                        }

                                        //Si no existe inserto el registro
                                        if (lng_idAmortizacionLineas == -1)
                                        {

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IDAMORTIZACIONCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IDINMOVILIZADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_LINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_TIPOAMORTIZACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IMPORTEAMORTIZAR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_FECHACALCULOINICIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_FECHACALCULOFIN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_FECHAACTUALIZACIONINTERNA +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                        "@idAmortizacionCabecera," +
                                                                                        "@idInmovilizado," +
                                                                                        "@linea," +
                                                                                        "@tipoAmortizacion," +
                                                                                        "@importeAmortizar," +
                                                                                        "@fechaCalculoInicio," +
                                                                                        "@fechaCalculoFin," +
                                                                                        "@fechaActualizacionInterna" +
                                                                            " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idAmortizacionCabecera", lng_idAmortizacionCabecera),
                                                new SqlParameter("@idInmovilizado", lng_idInmovilizado),
                                                new SqlParameter("@linea", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                new SqlParameter("@tipoAmortizacion", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                                new SqlParameter("@importeAmortizar", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                new SqlParameter("@fechaCalculoInicio", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                new SqlParameter("@fechaCalculoFin", mdl_INTERNO_Tabla_Modelo.Objeto_15),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                    ?   new SqlParameter("@fechaActualizacionInterna", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                    :   new SqlParameter("@fechaActualizacionInterna",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IDAMORTIZACIONCABECERA,
                                                                                                                                            lng_idAmortizacionCabecera.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            else
                                            {
                                                
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IDAMORTIZACIONCABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA_CAMPO_IDINMOVILIZADO),
                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA,
                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDELEGACION),
                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                               "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESLINEA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                                    
                            
                        }
                        #endregion

                        int_Contador_Linea_Excel += 1;

                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Amortizaciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_ClaveAnalitica
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_ClaveAnalitica(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idClaveAnalitica = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idClaveAnalitica = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                           
                        }
                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                            {
                                lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                            }
                            else
                            {
                                lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA,
                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idClaveAnalitica > -1)
                                {
                                    g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idClaveAnalitica == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS +
                                                        " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_PRESUPUESTO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa," +
                                                            "@presupuesto" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                            ?   new SqlParameter("@presupuesto", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                            :   new SqlParameter("@presupuesto",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_ClaveAnalitica),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_ClaveAnalitica),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes),
                                                    "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_ClaveAnalitica), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Concepto
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_Concepto(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS +
                                                        " (" +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_CODIGO + "," +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_DESCRIPCION + "," +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_SALTARCAMPO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@saltarCampo" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                            ?   new SqlParameter("@saltarCampo", mdl_INTERNO_Tabla_Modelo.Objeto_3 )
                                            :   new SqlParameter("@saltarCampo",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Concepto),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_CTA_Conceptos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Concepto),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Concepto), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Departamentos
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_Departamentos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idDepartamento = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idDepartamento = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                            {
                                lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                            }
                            else
                            {
                                lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_IDEMPRESA,
                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idDepartamento > -1)
                                {
                                    g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idDepartamento == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS +
                                                        " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Departamentos),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_CTA_Departamentos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Departamentos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Departamentos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Diario
        public INTERNO_ValorDevuelto_Modelo Insertar_LibroDiario(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            //Cabecera
            long lng_idDiarioCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idVolcadoCabecera = -1;
            long lng_idPredefinidoFichero_Especial = -1;

            long lng_idMayor = -1;
            long lng_idConcepto = -1;
            long lng_idVolcadoLinea = -1;
            long lng_idClaveAnalitica = -1;

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idDiarioCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idVolcadoCabecera = -1;
                        lng_idPredefinidoFichero_Especial = -1;
                        lng_idMayor = -1;
                        lng_idConcepto = -1;
                        lng_idVolcadoLinea = -1;
                        lng_idClaveAnalitica = -1;

                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                                
                            }
                            

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_CTA_DiarioCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idDiarioCabecera = g_dct_ids_CTA_DiarioCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idDiarioCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_NUMEROASIENTO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_FECHA,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDiarioCabecera > -1)
                                    {
                                        g_dct_ids_CTA_DiarioCabecera.Add(str_AUX, lng_idDiarioCabecera);
                                    }
                                    
                                }
                                


                                //Si no existe inserto el registro
                                if (lng_idDiarioCabecera == -1)
                                {
                                    //Si contiene algo busco el idPredefinidoFichero_Especial
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                                        {
                                            lng_idPredefinidoFichero_Especial = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPredefinidoFichero_Especial = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGOAUXILIAR,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPredefinidoFichero_Especial > -1)
                                            {
                                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero_Especial);
                                            }
                                           
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idPredefinidoFichero_Especial == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDPREDEFINIDOFICHERO_ESPECIAL),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idVolcadoCabecera
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "";
                                        //......................................................................................

                                        if (g_dct_ids_CTA_VolcadoCabecera.ContainsKey(str_AUX))
                                        {
                                            lng_idVolcadoCabecera = g_dct_ids_CTA_VolcadoCabecera[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idVolcadoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID,
                                                                                                             long.Parse(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "").ToString(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idVolcadoCabecera > -1)
                                            {
                                                g_dct_ids_CTA_VolcadoCabecera.Add(str_AUX, lng_idVolcadoCabecera);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idVolcadoCabecera == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDVOLCADOCABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA +
                                                                " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_NUMEROASIENTO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_FECHA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDPREDEFINIDOFICHERO_ESPECIAL + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDEMPRESA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDVOLCADOCABECERA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_FECHAACTUALIZACIONINTERNA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_PUNTEADO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                              "@numeroAsiento," +
                                                                              "@fecha," +
                                                                              "@idPredefinidoFichero_Especial," +
                                                                              "@idEmpresa," +
                                                                              "@idVolcadoCabecera," +
                                                                              "@fechaActualizacionInterna," +
                                                                              "@punteado" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@numeroAsiento", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                        lng_idPredefinidoFichero_Especial > -1
                                            ?   new SqlParameter("@idPredefinidoFichero_Especial", lng_idPredefinidoFichero_Especial )
                                            :   new SqlParameter("@idPredefinidoFichero_Especial",  DBNull.Value),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        lng_idVolcadoCabecera > -1
                                            ?   new SqlParameter("@idVolcadoCabecera", lng_idVolcadoCabecera )
                                            :   new SqlParameter("@idVolcadoCabecera",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                            ?   new SqlParameter("@fechaActualizacionInterna", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                            :   new SqlParameter("@fechaActualizacionInterna",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                            ?   new SqlParameter("@punteado", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                            :   new SqlParameter("@punteado",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_NUMEROASIENTO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //Todo Correcto
                                    else
                                    {
                                        lng_idDiarioCabecera = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        g_dct_ids_CTA_DiarioCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_LINEA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }


                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_CTA_DiarioCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idDiarioCabecera = g_dct_ids_CTA_DiarioCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idDiarioCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_NUMEROASIENTO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_FECHA,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDiarioCabecera > -1)
                                    {
                                        g_dct_ids_CTA_DiarioCabecera.Add(str_AUX, lng_idDiarioCabecera);
                                    }

                                }


                                //Si no existe inserto el registro
                                if (lng_idDiarioCabecera > -1)
                                {

                                    //Si el idMayor esta vacio no relleno linea
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "_" +
                                                    lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor);
                                            }

                                        }

                                        //si existe continuo
                                        if (lng_idMayor > -1)
                                        {
                                            
                                            //Si contiene algo busco el idConcepto
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Conceptos.ContainsKey(str_AUX))
                                                {
                                                    lng_idConcepto = g_dct_ids_CTA_Conceptos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idConcepto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idConcepto > -1)
                                                    {
                                                        g_dct_ids_CTA_Conceptos.Add(str_AUX, lng_idConcepto);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idConcepto == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDCONCEPTO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idVolcadoLinea
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_CTA_VolcadoLineas.ContainsKey(str_AUX))
                                                {
                                                    lng_idVolcadoLinea = g_dct_ids_CTA_VolcadoLineas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVolcadoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_ID,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVolcadoLinea > -1)
                                                    {
                                                        g_dct_ids_CTA_VolcadoLineas.Add(str_AUX, lng_idVolcadoLinea);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idVolcadoLinea == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDVOLCADOLINEA),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idClaveAnalitica
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                {
                                                    lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idClaveAnalitica > -1)
                                                    {
                                                        g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                    }

                                                }
                                                //Si no existe muestro error
                                                if (lng_idVolcadoLinea == -1)
                                                {

                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDCLAVEANALITICA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDDIARIOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDMAYOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_LINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IMPORTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_CONCEPTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_DEBEHABER + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDCONCEPTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDVOLCADOLINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_NUMEROFACTURADOCUMENTOTALON + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_FECHAFACTURADOCUMENTOTALON +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                            "@idDiarioCabecera," +
                                                                                            "@idMayor," +
                                                                                            "@linea," +
                                                                                            "@importe," +
                                                                                            "@concepto," +
                                                                                            "@debeHaber," +
                                                                                            "@idConcepto," +
                                                                                            "@idVolcadoLinea," +
                                                                                            "@idClaveAnalitica," +
                                                                                            "@numeroFacturaDocumentoTalon," +
                                                                                            "@fechaFacturaDocumentoTalon" +
                                                                            " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idDiarioCabecera", lng_idDiarioCabecera),
                                                new SqlParameter("@idMayor", lng_idMayor),
                                                new SqlParameter("@linea", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                new SqlParameter("@concepto", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                                new SqlParameter("@debeHaber", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                lng_idConcepto > -1
                                                    ?   new SqlParameter("@idConcepto", lng_idConcepto )
                                                    :   new SqlParameter("@idConcepto",  DBNull.Value),
                                                lng_idVolcadoLinea > -1
                                                    ?   new SqlParameter("@idVolcadoLinea", lng_idVolcadoLinea )
                                                    :   new SqlParameter("@idVolcadoLinea",  DBNull.Value),
                                                lng_idClaveAnalitica > -1
                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                    ?   new SqlParameter("@numeroFacturaDocumentoTalon", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                    :   new SqlParameter("@numeroFacturaDocumentoTalon",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                    ?   new SqlParameter("@fechaFacturaDocumentoTalon", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                    :   new SqlParameter("@fechaFacturaDocumentoTalon",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDDIARIOCABECERA,
                                                                                                                                            lng_idDiarioCabecera.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDMAYOR),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        
                                       

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA_CAMPO_IDDIARIOCABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOLINEA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_DIARIOCABECERA_CAMPO_IDEMPRESA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        //###################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_LibroDiario), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Inmovilizados
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_Inmovilizados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            decimal dcm_PorDefecto=0;
            int int_PorDefecto = 0;

            long lng_idinmovilizado = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion_FacturaCabecera = -1;
            long lng_idFacturaCabecera = -1;
            long lng_idMayor_CuentaInmovilizado = -1;
            long lng_idMayor_CuentaAmortizacionAcumulada = -1;
            long lng_idMayor_CuentaDotacion = -1;
            long lng_idMayorAuxiliar = -1;
            long lng_idDepartamento = -1;
            long lng_idInmovilizadoMotivoBaja = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idinmovilizado = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion_FacturaCabecera = -1;
                        lng_idFacturaCabecera = -1;
                        lng_idMayor_CuentaInmovilizado = -1;
                        lng_idMayor_CuentaAmortizacionAcumulada = -1;
                        lng_idMayor_CuentaDotacion = -1;
                        lng_idMayorAuxiliar = -1;
                        lng_idDepartamento = -1;
                        lng_idInmovilizadoMotivoBaja = -1;
                        lng_idFacturaCabecera = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                            }
                            else
                            {
                                lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idDelegacion > -1)
                                {
                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                }
                                
                            }
                            

                            //si existe el registro continuo
                            if (lng_idDelegacion > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                          lng_idDelegacion.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_CTA_Inmovilizados.ContainsKey(str_AUX))
                                {
                                    lng_idinmovilizado = g_dct_ids_CTA_Inmovilizados[str_AUX];
                                }
                                else
                                {
                                    lng_idinmovilizado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NUMEROORDEN,
                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDELEGACION,
                                                                                                  lng_idDelegacion.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDEMPRESA,
                                                                                                  lng_idEmpresa.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idinmovilizado > -1)
                                    {
                                        g_dct_ids_CTA_Inmovilizados.Add(str_AUX, lng_idinmovilizado);
                                    }
                                    
                                }
                                
                                //Si no existe inserto el registro
                                if (lng_idinmovilizado == -1)
                                {
                                    //Si contiene algo busco el idFacturaCabecera
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null &&
                                        mdl_INTERNO_Tabla_Modelo.Objeto_6 != null &&
                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                    {
                                         
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString() : "") + "_" +
                                                    lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                        {
                                            lng_idDelegacion_FacturaCabecera = g_dct_ids_GEN_Delegaciones[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idDelegacion_FacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idDelegacion_FacturaCabecera > -1)
                                            {
                                                g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_FacturaCabecera);
                                            }
                                                   
                                        }
                                                
                                        //si existe continuo
                                        if (lng_idDelegacion_FacturaCabecera > -1)
                                        {
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                        lng_idDelegacion_FacturaCabecera.ToString().Trim() + "_" +
                                                        lng_idEmpresa.ToString().Trim() + "_" +
                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");

                                            if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                            {
                                                lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                        lng_idDelegacion_FacturaCabecera.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idFacturaCabecera > -1)
                                                {
                                                    g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                                }
                                                       
                                            }
                                                   
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString() : "") + "-" + (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "-" + (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDFACTURACOMPRACABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        
                                    }

                                    //Si contiene algo busco el idMayor_CuentaInmovilizado
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_CuentaInmovilizado = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_CuentaInmovilizado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                                      lng_idEmpresa.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_CuentaInmovilizado > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaInmovilizado);
                                            }
                                            
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_idMayor_CuentaInmovilizado == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTAINMOVILIZADO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_CuentaAmortizacionAcumulada
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_CuentaAmortizacionAcumulada = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_CuentaAmortizacionAcumulada = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                                       lng_idEmpresa.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_CuentaAmortizacionAcumulada > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaAmortizacionAcumulada);
                                            }
                                            
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_idMayor_CuentaAmortizacionAcumulada == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTAAMORTIZACIONACUMULADA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_CuentaDotacion
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_CuentaDotacion = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_CuentaDotacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                                      lng_idEmpresa.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_CuentaDotacion > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaDotacion);
                                            }
                                            
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_idMayor_CuentaDotacion == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTADOTACION),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayorAuxiliar
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                                        {
                                            lng_idMayorAuxiliar = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayorAuxiliar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_IDEMPRESA,
                                                                                                                      lng_idEmpresa.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayorAuxiliar > -1)
                                            {
                                                g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxiliar);
                                            }
                                            
                                        }
                                        

                                        //Si no existe muestro error
                                        if (lng_idMayorAuxiliar == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYORAUXILIAR),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idDepartamento
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                        {
                                            lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idDepartamento > -1)
                                            {
                                                g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                            }
                                            
                                        }
                                       
                                        //Si no existe muestro error
                                        if (lng_idDepartamento == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDEPARTAMENTO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idInmovilizadoMotivoBaja
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_InmovilizadosMotivosBaja.ContainsKey(str_AUX))
                                        {
                                            lng_idInmovilizadoMotivoBaja = g_dct_ids_CTA_InmovilizadosMotivosBaja[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idInmovilizadoMotivoBaja = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idInmovilizadoMotivoBaja > -1)
                                            {
                                                g_dct_ids_CTA_InmovilizadosMotivosBaja.Add(str_AUX, lng_idInmovilizadoMotivoBaja);
                                            }

                                           
                                        }
                                       
                                        //Si no existe muestro error
                                        if (lng_idInmovilizadoMotivoBaja == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDINMOVILIZADOMOTIVOBAJA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS +
                                                                " (" +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NUMEROORDEN + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_CONCEPTO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDELEGACION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NATURALEZA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDFACTURACOMPRACABECERA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_FECHAINICIOAMORTIZACION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IMPORTEAMORTIZABLE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IMPORTEAMORTIZADOENALTA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_RANGOAMORTIZAR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_TIPOCALCULOAMORTIZAR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_TIPOAMORTIZACION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_TIPOAMORTIZACIONMAXIMA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTAINMOVILIZADO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTAAMORTIZACIONACUMULADA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYOR_CUENTADOTACION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDMAYORAUXILIAR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDEPARTAMENTO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_FECHABAJA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NOAMORTIZAR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDINMOVILIZADOMOTIVOBAJA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDEMPRESA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_AMORTIZADOTERMINADO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                               "@numeroOrden," +
                                                                               "@Concepto," +
                                                                               "@idDelegacion," +
                                                                               "@naturaleza," +
                                                                               "@idFacturaCompraCabecera," +
                                                                               "@fechaInicioAmortizacion," +
                                                                               "@importeAmortizable," +
                                                                               "@importeAmortizadoEnAlta," +
                                                                               "@rangoAmortizar," +
                                                                               "@tipoCalculoAmortizar," +
                                                                               "@tipoAmortizacion," +
                                                                               "@tipoAmortizacionMaxima," +
                                                                               "@idMayor_CuentaInmovilizado," +
                                                                               "@idMayor_CuentaAmortizacionAcumulada," +
                                                                               "@idMayor_CuentaDotacion," +
                                                                               "@idMayorAuxiliar," +
                                                                               "@idDepartamento," +
                                                                               "@fechaBaja," +
                                                                               "@noAmortizar," +
                                                                               "@idInmovilizadoMotivoBaja," +
                                                                               "@idEmpresa," +
                                                                               "@amortizadoTerminado" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@numeroOrden", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@Concepto", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                        new SqlParameter("@naturaleza", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                        lng_idFacturaCabecera > -1
                                            ?   new SqlParameter("@idFacturaCompraCabecera", lng_idFacturaCabecera )
                                            :   new SqlParameter("@idFacturaCompraCabecera",  DBNull.Value),
                                        new SqlParameter("@fechaInicioAmortizacion", mdl_INTERNO_Tabla_Modelo.Objeto_8),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                            ?   new SqlParameter("@importeAmortizable", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                            :   new SqlParameter("@importeAmortizable",  dcm_PorDefecto),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                            ?   new SqlParameter("@importeAmortizadoEnAlta",  mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                            :   new SqlParameter("@importeAmortizadoEnAlta", dcm_PorDefecto),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                            ?   new SqlParameter("@rangoAmortizar",  mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                            :   new SqlParameter("@rangoAmortizar", int_PorDefecto),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                            ?   new SqlParameter("@tipoCalculoAmortizar",  mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                            :   new SqlParameter("@tipoCalculoAmortizar", ""),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                            ?   new SqlParameter("@tipoAmortizacion",  mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                            :   new SqlParameter("@tipoAmortizacion", dcm_PorDefecto),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                            ?   new SqlParameter("@tipoAmortizacionMaxima",  mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                            :   new SqlParameter("@tipoAmortizacionMaxima", dcm_PorDefecto),
                                        lng_idMayor_CuentaInmovilizado > -1
                                            ?   new SqlParameter("@idMayor_CuentaInmovilizado", lng_idMayor_CuentaInmovilizado )
                                            :   new SqlParameter("@idMayor_CuentaInmovilizado",  DBNull.Value),
                                        lng_idMayor_CuentaAmortizacionAcumulada > -1
                                            ?   new SqlParameter("@idMayor_CuentaAmortizacionAcumulada", lng_idMayor_CuentaAmortizacionAcumulada )
                                            :   new SqlParameter("@idMayor_CuentaAmortizacionAcumulada",  DBNull.Value),
                                        lng_idMayor_CuentaDotacion > -1
                                            ?   new SqlParameter("@idMayor_CuentaDotacion", lng_idMayor_CuentaDotacion )
                                            :   new SqlParameter("@idMayor_CuentaDotacion",  DBNull.Value),
                                        lng_idMayorAuxiliar > -1
                                            ?   new SqlParameter("@idMayorAuxiliar", lng_idMayorAuxiliar )
                                            :   new SqlParameter("@idMayorAuxiliar",  DBNull.Value),
                                        lng_idDepartamento > -1
                                            ?   new SqlParameter("@idDepartamento", lng_idDepartamento )
                                            :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                            ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                            :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_21!= null
                                            ?   new SqlParameter("@noAmortizar", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                            :   new SqlParameter("@noAmortizar",  DBNull.Value),
                                        lng_idInmovilizadoMotivoBaja > -1
                                            ?   new SqlParameter("@idInmovilizadoMotivoBaja", lng_idInmovilizadoMotivoBaja )
                                            :   new SqlParameter("@idInmovilizadoMotivoBaja",  DBNull.Value),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_24!= null
                                            ?   new SqlParameter("@amortizadoTerminado", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                            :   new SqlParameter("@amortizadoTerminado",  true)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_NUMEROORDEN,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //Todo Correcto
                                    else
                                    {
                                        lng_idinmovilizado = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                    lng_idDelegacion.ToString().Trim() + "_" +
                                                    lng_idEmpresa.ToString().Trim();
                                        g_dct_ids_CTA_Inmovilizados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDDELEGACION),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOS_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Inmovilizados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_InmovilizadosMotivosBaja
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_InmovilizadosMotivosBaja(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA +
                                                        " (" +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_CODIGO + "," +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_INMOVILIZADOSMOTIVOSBAJA_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                   _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                   mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_InmovilizadosMotivosBaja),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_CTA_InmovilizadosMotivosBaja.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                           str_Fila,
                                                                                                           "",
                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_InmovilizadosMotivosBaja),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_InmovilizadosMotivosBaja), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Mayor
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_Mayor(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            string str_Fila = "";
            long lng_idMayor = -1;
            long lng_idEmpresa = -1;
            long lng_idEjercicio_Baja = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idMayor = -1;
                        lng_idEmpresa = -1;
                        lng_idEjercicio_Baja = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            if (str_AUX=="|EMP|")
                            {
                                lng_idEmpresa = Variables.G_MDL_INTERNO_VALORESGENERALES_MODELO.lng_idEmpresa;
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);
                            }

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                           
                        }
                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                            {
                                lng_idMayor = g_dct_ids_CTA_Mayor[str_AUX];
                            }
                            else
                            {
                                lng_idMayor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idMayor > -1)
                                {
                                    g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idMayor == -1)
                            {
                                //Si contiene algo busco el idPredefinidoFichero
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_EjerciciosActivos.ContainsKey(str_AUX))
                                    {
                                        lng_idEjercicio_Baja = g_dct_ids_GEN_EjerciciosActivos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEjercicio_Baja = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EJERCICIOSACTIVOS_EMPRESA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EJERCICIOSACTIVOS_EMPRESA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EJERCICIOSACTIVOS_EMPRESA_CAMPO_ANIOCONTROL,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EJERCICIOSACTIVOS_EMPRESA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEjercicio_Baja > -1)
                                        {
                                            g_dct_ids_GEN_EjerciciosActivos.Add(str_AUX, lng_idEjercicio_Baja);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idEjercicio_Baja == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEJERCICIO_BAJA,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR +
                                                            " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_DESCRIPCION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEJERCICIO_BAJA +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@idEmpresa," +
                                                                "@idEjercicio_Baja" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                lng_idEjercicio_Baja > -1
                                    ?   new SqlParameter("@idEjercicio_Baja", lng_idEjercicio_Baja)
                                    :   new SqlParameter("@idEjercicio_Baja",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_CTA_Mayor.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_Mayor), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_MayorAuxiliar
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_MayorAuxiliar(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            string str_Fila = "";
            long lng_idMayorAuxiliar = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idMayorAuxiliar = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                            {
                                lng_idMayorAuxiliar = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                            }
                            else
                            {
                                lng_idMayorAuxiliar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idMayorAuxiliar > -1)
                                {
                                    g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxiliar);
                                }
                                
                            }
                            

                            //si no existe inserto
                            if (lng_idMayorAuxiliar == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR +
                                                        " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_MayorAuxiliar),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_IDEMPRESA,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_MayorAuxiliar),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_MayorAuxiliar), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_MayorAuxiliar), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PlanGeneralContable
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PlanGeneralContable(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE +
                                                        " (" +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE_CAMPO_CODIGO + "," +
                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PLANGENERALCONTABLE_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PlanGeneralContable),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_CTA_PlanGeneralContable.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                           str_Fila,
                                                                                                           "",
                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PlanGeneralContable),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PlanGeneralContable), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosAuxiliares
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosAuxiliares(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosAuxiliares.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_CTA_PredefinidosAuxiliares[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosAuxiliares.Add(str_AUX, lng_id);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_IDPREDEFINIDOFICHERO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@vector," +
                                                                "@idPredefinidoFichero" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3 ),
                                    new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosAuxiliares),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_CTA_PredefinidosAuxiliares.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosAuxiliares),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosAuxiliares),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosAuxiliares), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosAuxiliares), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosCabeceras
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosCabeceras(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            string str_Fila = "";
            string str_Identificador = "";
            long lng_idPredefinidoCabecera = -1;
            long lng_idPredefinidoFichero = -1;
            long lng_idPredefinidoFecha = -1;
            long lng_idPredefinidoLinea = -1;
            long lng_idPredefinidoAuxiliar = -1;
            long lng_idPredefinidoImporte = -1;
            long lng_idPredefinidoCuenta = -1;
            long lng_idMayor = -1;
            long lng_idPredefinidoConcepto_1 = -1;
            long lng_idPredefinidoConcepto_2 = -1;
            long lng_idPredefinidoConcepto_3 = -1;
            long lng_idDepartamento = -1;

            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idPredefinidoCabecera = -1;
                        lng_idPredefinidoFichero = -1;
                        lng_idPredefinidoFecha = -1;
                        lng_idPredefinidoLinea = -1;
                        lng_idPredefinidoAuxiliar = -1;
                        lng_idPredefinidoImporte = -1;
                        lng_idPredefinidoCuenta = -1;
                        lng_idMayor = -1;
                        lng_idPredefinidoConcepto_1 = -1;
                        lng_idPredefinidoConcepto_2 = -1;
                        lng_idPredefinidoConcepto_3 = -1;
                        lng_idDepartamento = -1;
                        str_AUX = "";
                        str_Identificador = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");


                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PREDEFINIDO_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : "");
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                            {
                                lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                            }
                            else
                            {
                                lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idPredefinidoCabecera > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_idPredefinidoCabecera == -1)
                            {
                                //Si contiene algo busco el idPredefinidoFichero
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                                    {
                                        lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPredefinidoFichero > -1)
                                        {
                                            g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                                        }

                                    }

                                    //Si no lo encontro muestro mensaje de error
                                    if (lng_idPredefinidoFichero == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                      _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                      mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                                                                      Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idPredefinidoFecha
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_PredefinidosFechas.ContainsKey(str_AUX))
                                    {
                                        lng_idPredefinidoFecha = g_dct_ids_CTA_PredefinidosFechas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPredefinidoFecha = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPredefinidoFecha > -1)
                                        {
                                            g_dct_ids_CTA_PredefinidosFechas.Add(str_AUX, lng_idPredefinidoFecha);
                                        }

                                    }

                                    //Si no lo encontro muestro mensaje de error
                                    if (lng_idPredefinidoFecha == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                      _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                      mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_IDPREDEFINIDOFECHAS,
                                                                                                                                      Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idPredefinidoFecha

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_IDPREDEFINIDOFICHERO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_IDPREDEFINIDOFECHAS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ACTIVARHISTORICO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@idPredefinidoFichero," +
                                                                "@idPredefinidoFechas," +
                                                                "@activarHistorico" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                lng_idPredefinidoFichero > -1
                                        ?   new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero)
                                        :   new SqlParameter("@idPredefinidoFichero",  DBNull.Value),
                                lng_idPredefinidoFecha > -1
                                        ?   new SqlParameter("@idPredefinidoFechas", lng_idPredefinidoFecha)
                                        :   new SqlParameter("@idPredefinidoFechas",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6  != null
                                        ?   new SqlParameter("@activarHistorico", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@activarHistorico",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                         _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                         mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                         mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        #endregion

                        #region Linea
                        //Linea ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PREDEFINIDO_LINEA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //PredefinidoCabecera
                                lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];

                               
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "";
                                //......................................................................................

                                if (g_dct_ids_CTA_PredefinidosImportes.ContainsKey(str_AUX))
                                {
                                    lng_idPredefinidoImporte = g_dct_ids_CTA_PredefinidosImportes[str_AUX];
                                }
                                else
                                {
                                    lng_idPredefinidoImporte = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPredefinidoImporte > -1)
                                    {
                                        g_dct_ids_CTA_PredefinidosImportes.Add(str_AUX, lng_idPredefinidoImporte);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idPredefinidoImporte > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "";
                                    //......................................................................................

                                    if (g_dct_ids_CTA_PredefinidosCuentas.ContainsKey(str_AUX))
                                    {
                                        lng_idPredefinidoCuenta = g_dct_ids_CTA_PredefinidosCuentas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPredefinidoCuenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPredefinidoCuenta > -1)
                                        {
                                            g_dct_ids_CTA_PredefinidosCuentas.Add(str_AUX, lng_idPredefinidoCuenta);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idPredefinidoCuenta > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos  .......................
                                        str_AUX = lng_idPredefinidoCabecera.ToString() + "_" +
                                                  lng_idPredefinidoImporte.ToString().Trim() + "_" +
                                                  lng_idPredefinidoCuenta.ToString().Trim() + "_" +
                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_CTA_PredefinidosLineas.ContainsKey(str_AUX))
                                        {
                                            lng_idPredefinidoLinea = g_dct_ids_CTA_PredefinidosLineas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPredefinidoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCABECERA,
                                                                                                        lng_idPredefinidoCabecera.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOIMPORTE,
                                                                                                        lng_idPredefinidoImporte.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCUENTA,
                                                                                                        lng_idPredefinidoCuenta.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_LINEA,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPredefinidoLinea > -1)
                                            {
                                                g_dct_ids_CTA_PredefinidosLineas.Add(str_AUX, lng_idPredefinidoLinea);
                                            }

                                        }

                                        //si no existe inserto
                                        if (lng_idPredefinidoLinea == -1)
                                        {
                                            //Si contiene algo busco el idPredefinidoAuxiliar
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosAuxiliares.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoAuxiliar = g_dct_ids_CTA_PredefinidosAuxiliares[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoAuxiliar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSAUXILIARES_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoAuxiliar > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosAuxiliares.Add(str_AUX, lng_idPredefinidoAuxiliar);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idPredefinidoAuxiliar == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOAUXILIAR),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idMayor
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idMayor == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDMAYOR),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPredefinidoConcepto_1
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosConceptos.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoConcepto_1 = g_dct_ids_CTA_PredefinidosConceptos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoConcepto_1 = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoConcepto_1 > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosConceptos.Add(str_AUX, lng_idPredefinidoConcepto_1);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idPredefinidoConcepto_1 == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_1),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPredefinidoConcepto_2
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosConceptos.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoConcepto_2 = g_dct_ids_CTA_PredefinidosConceptos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoConcepto_2 = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoConcepto_2 > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosConceptos.Add(str_AUX, lng_idPredefinidoConcepto_2);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idPredefinidoConcepto_2 == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_2),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPredefinidoConcepto_3
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosConceptos.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoConcepto_3 = g_dct_ids_CTA_PredefinidosConceptos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoConcepto_3 = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoConcepto_3 > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosConceptos.Add(str_AUX, lng_idPredefinidoConcepto_3);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idPredefinidoConcepto_3 == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_3),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idDepartamento
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                                {
                                                    lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDepartamento > -1)
                                                    {
                                                        g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                                    }

                                                }

                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idDepartamento == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDDEPARTAMENTO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }


                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS +
                                                                        " (" +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCABECERA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOAUXILIAR + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOENTIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOIMPORTE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCUENTA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_DEBEHABER + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_LINEA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDMAYOR + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_CONCEPTOFIJO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_1 + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_2 + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCONCEPTO_3 + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_SIGNOPOSITIVO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_REPETIR + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDDEPARTAMENTO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_NOBUSCARENCUENTA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_ACUMULADO + 
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                    "@idPredefinidoCabecera," +
                                                                                    "@idPredefinidoAuxiliar," +
                                                                                    "@idPredefinidoEntidad," +
                                                                                    "@idPredefinidoImporte," +
                                                                                    "@idPredefinidoCuenta," +
                                                                                    "@debeHaber," +
                                                                                    "@linea," +
                                                                                    "@idMayor," +
                                                                                    "@conceptoFijo," +
                                                                                    "@idPredefinidoConcepto_1," +
                                                                                    "@idPredefinidoConcepto_2," +
                                                                                    "@idPredefinidoConcepto_3," +
                                                                                    "@signoPositivo," +
                                                                                    "@repetir," +
                                                                                    "@idDepartamento," +
                                                                                    "@noBuscarenCuenta," +
                                                                                    "@acumulado" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                                new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera),
                                                                lng_idPredefinidoAuxiliar > -1
                                                                    ?   new SqlParameter("@idPredefinidoAuxiliar", lng_idPredefinidoAuxiliar )
                                                                    :   new SqlParameter("@idPredefinidoAuxiliar",  DBNull.Value),
                                                                new SqlParameter("@idPredefinidoEntidad",  DBNull.Value),
                                                                new SqlParameter("@idPredefinidoImporte", lng_idPredefinidoImporte),
                                                                new SqlParameter("@idPredefinidoCuenta", lng_idPredefinidoCuenta),
                                                                new SqlParameter("@debeHaber", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                                new SqlParameter("@linea", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                                lng_idMayor > -1
                                                                    ?   new SqlParameter("@idMayor", lng_idMayor )
                                                                    :   new SqlParameter("@idMayor",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                                    ?   new SqlParameter("@conceptoFijo", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                                    :   new SqlParameter("@conceptoFijo",  DBNull.Value),
                                                                lng_idPredefinidoConcepto_1 > -1
                                                                    ?   new SqlParameter("@idPredefinidoConcepto_1", lng_idPredefinidoConcepto_1 )
                                                                    :   new SqlParameter("@idPredefinidoConcepto_1",  DBNull.Value),
                                                                lng_idPredefinidoConcepto_2 > -1
                                                                    ?   new SqlParameter("@idPredefinidoConcepto_2", lng_idPredefinidoConcepto_2 )
                                                                    :   new SqlParameter("@idPredefinidoConcepto_2",  DBNull.Value),
                                                                lng_idPredefinidoConcepto_3 > -1
                                                                    ?   new SqlParameter("@idPredefinidoConcepto_3", lng_idPredefinidoConcepto_3 )
                                                                    :   new SqlParameter("@idPredefinidoConcepto_3",  DBNull.Value),
                                                                new SqlParameter("@signoPositivo", mdl_INTERNO_Tabla_Modelo.Objeto_17),
                                                                new SqlParameter("@repetir", mdl_INTERNO_Tabla_Modelo.Objeto_18),
                                                                lng_idDepartamento > -1
                                                                    ?   new SqlParameter("@idDepartamento", lng_idDepartamento )
                                                                    :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                                                new SqlParameter("@noBuscarenCuenta", mdl_INTERNO_Tabla_Modelo.Objeto_20),
                                                                new SqlParameter("@acumulado", mdl_INTERNO_Tabla_Modelo.Objeto_21)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EntradasMercancia),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                //Añadir al Diccionario
                                                str_AUX =   lng_idPredefinidoCabecera.ToString() + "_" +
                                                            lng_idPredefinidoImporte.ToString().Trim() + "_" +
                                                            lng_idPredefinidoCuenta.ToString().Trim() + "_" +
                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");

                                                g_dct_ids_CTA_PredefinidosLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOCUENTA),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSLINEAS_CAMPO_IDPREDEFINIDOIMPORTE),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCabeceras), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosCuentas
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosCuentas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosCuentas.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_CTA_PredefinidosCuentas[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                 lng_idPredefinidoFichero.ToString(),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosCuentas.Add(str_AUX, lng_id);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_IDPREDEFINIDOFICHERO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_VECTOR_AUX_1 +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@vector," +
                                                                "@idPredefinidoFichero," +
                                                                "@vector_AUX_1" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3  != null
                                        ?   new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@vector",  ""),
                                    new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5  != null
                                        ?   new SqlParameter("@vector_AUX_1", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                        :   new SqlParameter("@vector_AUX_1",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCuentas),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                                    g_dct_ids_CTA_PredefinidosCuentas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCuentas),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCUENTAS_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCuentas),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCuentas), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosCuentas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosConceptos
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosConceptos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosConceptos.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_CTA_PredefinidosConceptos[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosConceptos.Add(str_AUX, lng_id);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_IDPREDEFINIDOFICHERO + 
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@vector," +
                                                                "@idPredefinidoFichero" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3  != null
                                        ?   new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@vector",  ""),
                                    new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosConceptos),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_CTA_PredefinidosConceptos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosConceptos),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCONCEPTOS_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosConceptos),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosConceptos), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosConceptos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosDepartamentos
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosDepartamentos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosDepartamentos.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_CTA_PredefinidosDepartamentos[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                 lng_idPredefinidoFichero.ToString(),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosDepartamentos.Add(str_AUX, lng_id);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_IDPREDEFINIDOFICHERO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@vector," +
                                                                "@idPredefinidoFichero" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                     mdl_INTERNO_Tabla_Modelo.Objeto_3  != null
                                        ?   new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@vector",  ""),
                                    new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosDepartamentos),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                                    g_dct_ids_CTA_PredefinidosDepartamentos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosDepartamentos),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSDEPARTAMENTOS_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosDepartamentos),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosDepartamentos), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosDepartamentos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosFechas
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosFechas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idPredefinidoFecha = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idPredefinidoFecha = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }
                            
                        }
                        

                        //si no lo encuentra no ingreso el registro ya que es obligatorio
                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idPredefinidoFichero.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosFechas.ContainsKey(str_AUX))
                            {
                                lng_idPredefinidoFecha = g_dct_ids_CTA_PredefinidosFechas[str_AUX];
                            }
                            else
                            {
                                lng_idPredefinidoFecha = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                                    lng_idPredefinidoFichero.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idPredefinidoFecha > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosFechas.Add(str_AUX, lng_idPredefinidoFecha);
                                }
                                
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idPredefinidoFecha == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_IDPREDEFINIDOFICHERO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@vector," +
                                                            "@idPredefinidoFichero" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                new SqlParameter("@idPredefinidoFichero", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFechas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idPredefinidoFichero.ToString().Trim();
                                    g_dct_ids_CTA_PredefinidosFechas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                          _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFECHAS_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFechas),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFechas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFechas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosFicheros
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosFicheros(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGOAUXILIAR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_TIPO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@id," +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@codigoAuxiliar," +
                                                            "@tipo" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@id", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                new SqlParameter("@codigoAuxiliar", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFicheros),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                           str_Fila,
                                                                                                           "",
                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFicheros),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosFicheros), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosImportes
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosImportes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosImportes.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_CTA_PredefinidosImportes[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                 lng_idPredefinidoFichero.ToString(),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosImportes.Add(str_AUX, lng_id);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_VECTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_IDPREDEFINIDOFICHERO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_PROCESOCALCULO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_VECTOR_AUX_1 +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@vector," +
                                                                "@idPredefinidoFichero," +
                                                                "@procesoCalculo," +
                                                                "@vector_AUX_1" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3  != null
                                        ?   new SqlParameter("@vector", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@vector",  ""),
                                    new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5  != null
                                        ?   new SqlParameter("@procesoCalculo", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                        :   new SqlParameter("@procesoCalculo",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6  != null
                                        ?   new SqlParameter("@vector_AUX_1", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@vector_AUX_1",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosImportes),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idPredefinidoFichero.ToString();
                                    g_dct_ids_CTA_PredefinidosImportes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosImportes),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSIMPORTES_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosImportes),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosImportes), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosImportes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_PredefinidosPorDefecto
        public INTERNO_ValorDevuelto_Modelo Insertar_CTA_PredefinidosPorDefecto(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idPredefinidoFichero = -1;
            long lng_idPredefinidoCabecera = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idPredefinidoFichero = -1;
                        lng_idPredefinidoCabecera = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                        {
                            lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                        }
                        else
                        {
                            lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPredefinidoFichero > -1)
                            {
                                g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                            }

                        }

                        if (lng_idPredefinidoFichero > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "";
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                            {
                                lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                            }
                            else
                            {
                                lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idPredefinidoCabecera > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                }

                            }

                            if (lng_idPredefinidoCabecera > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idPredefinidoFichero.ToString() + "_" + lng_idPredefinidoCabecera.ToString();
                                //......................................................................................

                                if (g_dct_ids_CTA_PredefinidosPorDefecto.ContainsKey(str_AUX))
                                {
                                    lng_id = g_dct_ids_CTA_PredefinidosPorDefecto[str_AUX];
                                }
                                else
                                {
                                    lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                     lng_idPredefinidoFichero.ToString(),
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOCABECERA,
                                                                                     lng_idPredefinidoCabecera.ToString(),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);


                                    //Añadir al Diccionario
                                    if (lng_id > -1)
                                    {
                                        g_dct_ids_CTA_PredefinidosPorDefecto.Add(str_AUX, lng_id);
                                    }

                                }

                                //Si no existe inserto el registro
                                if (lng_id == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOFICHERO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOCABECERA +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@idPredefinidoFichero," +
                                                                    "@idPredefinidoCabecera" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero ),
                                        new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera )
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPredefinidoFichero.ToString() + "_" + lng_idPredefinidoCabecera.ToString();
                                        g_dct_ids_CTA_PredefinidosPorDefecto.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOFICHERO,
                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOCABECERA,
                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO,
                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOCABECERA),
                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto),
                                                   "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSPORDEFECTO_CAMPO_IDPREDEFINIDOFICHERO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTA_PredefinidosPorDefecto), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region CTA_Prevolcados
        //Pendiente por el campo idDocumentoRelacionado
        public INTERNO_ValorDevuelto_Modelo Insertar_Prevolcados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            string str_Identificador = "";

            //Cabecera
            long lng_idVolcadoCabecera = -1;
            long lng_idPredefinidoFichero = -1;
            long lng_idDocumentoRelacionado = -1;

            long lng_idEmpresa_AUX = -1;
            long lng_idDelegacion_AUX = -1;
            long lng_idFacturaCabecera_AUX = -1;
            long lng_idVencimiento_AUX = -1;
            long lng_idCobro_AUX = -1;
            long lng_idPago_AUX = -1;

            //Linea
            long lng_idVolcadoLinea = -1;
            long lng_idMayor = -1;
            long lng_idConcepto = -1;
            long lng_idClaveAnalitica = -1;

            string str_AUX = "";
            string str_Fichero = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";

                        //Cabecera
                        lng_idVolcadoCabecera = -1;
                        lng_idPredefinidoFichero = -1;
                        lng_idDocumentoRelacionado = -1;

                        lng_idEmpresa_AUX = -1;
                        lng_idDelegacion_AUX = -1;
                        lng_idFacturaCabecera_AUX = -1;
                        lng_idVencimiento_AUX = -1;
                        lng_idCobro_AUX = -1;
                        lng_idPago_AUX = -1;

                        //Lineas
                        lng_idVolcadoLinea = -1;
                        lng_idMayor = -1;
                        lng_idConcepto = -1;
                        lng_idClaveAnalitica = -1;

                        str_AUX = "";
                        str_Fichero = "";
                        #endregion

                        //Obtengo el identificador
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera

                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_CABECERA))
                        {


                            //idVolcado
                            lng_idVolcadoCabecera = long.Parse(mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");


                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_CTA_PredefinidosFicheros.ContainsKey(str_AUX))
                            {
                                lng_idPredefinidoFichero = g_dct_ids_CTA_PredefinidosFicheros[str_AUX];
                            }
                            else
                            {
                                lng_idPredefinidoFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSFICHEROS_CAMPO_CODIGOAUXILIAR,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idPredefinidoFichero > -1)
                                {
                                    g_dct_ids_CTA_PredefinidosFicheros.Add(str_AUX, lng_idPredefinidoFichero);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_idPredefinidoFichero != -1)
                            {
                                str_Fichero = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");

                                switch (str_Fichero)
                                {
                                    #region ALBARAN DE COMPRA
                                    case "AC":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region AMORTIZACIONES 
                                    case "AM":
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                                            lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_CTA_AmortizacionesCabecera.ContainsKey(str_AUX))
                                                {
                                                    lng_idDocumentoRelacionado = g_dct_ids_CTA_AmortizacionesCabecera[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDocumentoRelacionado > -1)
                                                    {
                                                        g_dct_ids_CTA_AmortizacionesCabecera.Add(str_AUX, lng_idDocumentoRelacionado);
                                                    }
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_CTA_AMORTIZACIONESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }

                                            break;
                                        }
                                    #endregion

                                    #region ALBARAN DE VENTA Y ALBARAN DE SERVICIO  
                                    case "AV":
                                    case "AS":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region COBRO DE ALBARANES
                                    case "CA":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region CANCELACION POR LINEA DE REMESA DE VENTA  , COBROS MANUALES  Y COBROS DE CREDITO 
                                    case "CR":
                                    case "CO":
                                    case "CX":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" + 
                                                    lng_idEmpresa_AUX;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa_AUX.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA VENTA #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                                lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                                lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idFacturaCabecera_AUX = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idFacturaCabecera_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idFacturaCabecera_AUX > -1)
                                                        {
                                                            g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera_AUX);
                                                        }
                                                    }

                                                    if (lng_idFacturaCabecera_AUX > -1)
                                                    {

                                                        //VENCIMIENTOS VENTA #######################################################################################################
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : "") + "_" +
                                                                    lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : "");

                                                        if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVencimiento_AUX = g_dct_ids_VTA_Vencimientos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVencimiento_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                            lng_idFacturaCabecera_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVencimiento_AUX > -1)
                                                            {
                                                                g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento_AUX);
                                                            }

                                                        }

                                                        if (lng_idVencimiento_AUX > -1)
                                                        {
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                                      lng_idVencimiento_AUX.ToString().Trim() + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");

                                                            if (g_dct_ids_VTA_Cobros.ContainsKey(str_AUX))
                                                            {
                                                                lng_idDocumentoRelacionado = g_dct_ids_VTA_Cobros[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO,
                                                                                                                        lng_idVencimiento_AUX.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idDocumentoRelacionado > -1)
                                                                {
                                                                    g_dct_ids_VTA_Cobros.Add(str_AUX, lng_idDocumentoRelacionado);
                                                                }

                                                            }
                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);


                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                                                                               "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               str_AUX,
                                                                                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                    }

                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }



                                            break;
                                        }
                                    #endregion

                                    #region DEVOLUCIONES DE VENTAS   
                                    case "DV":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                            lng_idEmpresa_AUX;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa_AUX.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA VENTA #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                                lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                                lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idFacturaCabecera_AUX = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idFacturaCabecera_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idFacturaCabecera_AUX > -1)
                                                        {
                                                            g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera_AUX);
                                                        }
                                                    }

                                                    if (lng_idFacturaCabecera_AUX > -1)
                                                    {

                                                        //VENCIMIENTOS VENTA #######################################################################################################
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : "") + "_" +
                                                                    lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : "");

                                                        if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVencimiento_AUX = g_dct_ids_VTA_Vencimientos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVencimiento_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                            lng_idFacturaCabecera_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVencimiento_AUX > -1)
                                                            {
                                                                g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento_AUX);
                                                            }

                                                        }

                                                        if (lng_idVencimiento_AUX > -1)
                                                        {
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                                      lng_idVencimiento_AUX.ToString().Trim() + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");

                                                            if (g_dct_ids_VTA_Cobros.ContainsKey(str_AUX))
                                                            {
                                                                lng_idCobro_AUX = g_dct_ids_VTA_Cobros[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idCobro_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO,
                                                                                                                        lng_idVencimiento_AUX.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idCobro_AUX > -1)
                                                                {
                                                                    g_dct_ids_VTA_Cobros.Add(str_AUX, lng_idCobro_AUX);
                                                                }

                                                            }

                                                            if (lng_idCobro_AUX > -1)
                                                            {
                                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                                                            lng_idCobro_AUX.ToString().Trim() + "_" +
                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "");

                                                                if (g_dct_ids_VTA_DevolucionesCobros.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idDocumentoRelacionado = g_dct_ids_VTA_DevolucionesCobros[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_CODIGO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCOBRO,
                                                                                                                                    lng_idCobro_AUX.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_FECHA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idDocumentoRelacionado > -1)
                                                                    {
                                                                        g_dct_ids_VTA_DevolucionesCobros.Add(str_AUX, lng_idDocumentoRelacionado);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);


                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                                                                               "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               str_AUX,
                                                                                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                    }

                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            break;
                                        }
                                    #endregion

                                    #region FACTURAS DE COMPRA Y FACTURAS DE ABONO DE COMPRA
                                    case "FC":
                                    case "FA":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                            lng_idEmpresa_AUX;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa_AUX.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA  #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                                              lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                              lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                                                    {
                                                        lng_idDocumentoRelacionado = g_dct_ids_COM_FacturasCabecera[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idDocumentoRelacionado > -1)
                                                        {
                                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, lng_idDocumentoRelacionado);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            break;
                                        }
                                    #endregion

                                    #region FACTURA DE VENTA   
                                    case "FV":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                            lng_idEmpresa_AUX;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa_AUX.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA VENTA #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                                lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                                lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idDocumentoRelacionado = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idDocumentoRelacionado > -1)
                                                        {
                                                            g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idDocumentoRelacionado);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            break;
                                        }
                                    #endregion

                                    #region NOMINAS ,TRASFERENCIAS,PAGARES Y ORDENES DE PAGO   
                                    case "NO":
                                    case "PN":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region PAGOS DE COMPRA  
                                    case "PA":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                            lng_idEmpresa_AUX;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa_AUX.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA compra #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                                lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                                lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                                                    {
                                                        lng_idFacturaCabecera_AUX = g_dct_ids_COM_FacturasCabecera[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idFacturaCabecera_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idFacturaCabecera_AUX > -1)
                                                        {
                                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, lng_idFacturaCabecera_AUX);
                                                        }
                                                    }

                                                    if (lng_idFacturaCabecera_AUX > -1)
                                                    {

                                                        //VENCIMIENTOS COMPRA #######################################################################################################
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : "") + "_" +
                                                                    lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : "");

                                                        if (g_dct_ids_COM_Vencimientos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVencimiento_AUX = g_dct_ids_COM_Vencimientos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVencimiento_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                            lng_idFacturaCabecera_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVencimiento_AUX > -1)
                                                            {
                                                                g_dct_ids_COM_Vencimientos.Add(str_AUX, lng_idVencimiento_AUX);
                                                            }

                                                        }

                                                        if (lng_idVencimiento_AUX > -1)
                                                        {
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                                      lng_idVencimiento_AUX.ToString().Trim() + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");

                                                            if (g_dct_ids_COM_Pagos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idDocumentoRelacionado = g_dct_ids_COM_Pagos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDVENCIMIENTO,
                                                                                                                        lng_idVencimiento_AUX.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idDocumentoRelacionado > -1)
                                                                {
                                                                    g_dct_ids_COM_Pagos.Add(str_AUX, lng_idDocumentoRelacionado);
                                                                }

                                                            }

                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);


                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                                                               "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               str_AUX,
                                                                                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                    }

                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            break;
                                        }
                                    #endregion

                                    #region DEVOLUCIONES DE COMPRA  
                                    case "DC":
                                        {
                                            //EMPRESA ####################################################################################################
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresa_AUX = g_dct_ids_GEN_Empresas[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresa_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresa_AUX > -1)
                                                {
                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_AUX);
                                                }

                                            }

                                            if (lng_idEmpresa_AUX > -1)
                                            {
                                                //DELEGACION #######################################################################################
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idDelegacion_AUX = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDelegacion_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDelegacion_AUX > -1)
                                                    {
                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_AUX);
                                                    }

                                                }

                                                if (lng_idDelegacion_AUX > -1)
                                                {
                                                    //FACTURACABECERA compra #######################################################################################################
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                                                lng_idDelegacion_AUX.ToString().Trim() + "_" +
                                                                lng_idEmpresa_AUX.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "");
                                                    //......................................................................................

                                                    if (g_dct_ids_COM_FacturasCabecera.ContainsKey(str_AUX))
                                                    {
                                                        lng_idFacturaCabecera_AUX = g_dct_ids_COM_FacturasCabecera[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idFacturaCabecera_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idFacturaCabecera_AUX > -1)
                                                        {
                                                            g_dct_ids_COM_FacturasCabecera.Add(str_AUX, lng_idFacturaCabecera_AUX);
                                                        }
                                                    }

                                                    if (lng_idFacturaCabecera_AUX > -1)
                                                    {

                                                        //VENCIMIENTOS COMPRA #######################################################################################################
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : "") + "_" +
                                                                    lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : "");

                                                        if (g_dct_ids_COM_Vencimientos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVencimiento_AUX = g_dct_ids_COM_Vencimientos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVencimiento_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                            lng_idFacturaCabecera_AUX.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : ""),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVencimiento_AUX > -1)
                                                            {
                                                                g_dct_ids_COM_Vencimientos.Add(str_AUX, lng_idVencimiento_AUX);
                                                            }

                                                        }

                                                        if (lng_idVencimiento_AUX > -1)
                                                        {
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                                      lng_idVencimiento_AUX.ToString().Trim() + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");

                                                            if (g_dct_ids_COM_Pagos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPago_AUX = g_dct_ids_COM_Pagos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPago_AUX = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_IDVENCIMIENTO,
                                                                                                                        lng_idVencimiento_AUX.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPago_AUX > -1)
                                                                {
                                                                    g_dct_ids_COM_Pagos.Add(str_AUX, lng_idPago_AUX);
                                                                }

                                                            }

                                                            if (lng_idPago_AUX > -1)
                                                            {
                                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                                                            lng_idPago_AUX.ToString().Trim() + "_" +
                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "");

                                                                if (g_dct_ids_COM_DevolucionesPagos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idDocumentoRelacionado = g_dct_ids_COM_DevolucionesPagos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idDocumentoRelacionado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_CODIGO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_IDPAGO,
                                                                                                                                    lng_idPago_AUX.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_COM_DEVOLUCIONESPAGOS_CAMPO_FECHA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idDocumentoRelacionado > -1)
                                                                    {
                                                                        g_dct_ids_COM_DevolucionesPagos.Add(str_AUX, lng_idDocumentoRelacionado);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_PAGOS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS,
                                                                                                                                                                                                  "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_VENCIMIENTOS_CAMPO_ID,
                                                                                                                                                                                                  str_AUX,
                                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                              "Nº linea:" + int_Contador_Linea_Excel);


                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA,
                                                                                                                                                                                               "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                                                                               str_AUX,
                                                                                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                    }

                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                           "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                }

                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            "(Fichero:" + str_Fichero + ")" + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA + "." + Variables_TraspasoDatos.G_STR_TABLA_COM_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            break;
                                        }
                                    #endregion

                                    #region PEDIDOS DE COMPRA  , PEDIDOS DE COMPRA CANCELADOS Y PEDIDOS DE COMPRA ANULADOS  
                                    case "PC":
                                    case "PX":
                                    case "PY":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region PEDIDOS DE VENTA,PEDIDOS DE VENTA CANCELADOS Y PEDIDOS DE VENTA ANULADOS 
                                    case "PV":
                                    case "PW":
                                    case "PZ":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region REMESAS DE PAGOS DE COMPRA Y REMESAS NEGOCIADAS DE COMPRA  
                                    case "RC":
                                    case "PR":
                                        {

                                            break;
                                        }
                                    #endregion

                                    #region REMESAS DE COBROS DE VENTA Y REMESAS NEGOCIADAS DE VENTA   
                                    case "RM":
                                    case "RT":
                                        {

                                            break;
                                        }
                                    #endregion
                                    default:
                                        break;
                                }

                                //Si no existe inserto el registro
                                if (lng_idDocumentoRelacionado > -1)
                                {
                                    string str_SQL_Insertar = " SET IDENTITY_INSERT " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA + " ON; " +
                                                                " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA +
                                                                " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_IDPREDEFINIDOFICHERO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_IDDOCUMENTORELACIONADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_FECHA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_GUIDTERMINALLIQUIDACION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_VOLCADO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                             "@id," +
                                                                             "@idPredefinidoFichero," +
                                                                             "@idDocumentoRelacionado," +
                                                                             "@fecha," +
                                                                             "@GUIDTerminalLiquidacion," +
                                                                             "@volcado" +
                                                                " ); " +
                                                                " SET IDENTITY_INSERT " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA + " OFF; ";


                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                     new SqlParameter("@id", lng_idVolcadoCabecera),
                                     new SqlParameter("@idPredefinidoFichero", lng_idPredefinidoFichero),
                                     new SqlParameter("@idDocumentoRelacionado", lng_idDocumentoRelacionado),
                                     new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                     mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                         ?   new SqlParameter("@GUIDTerminalLiquidacion", mdl_INTERNO_Tabla_Modelo.Objeto_15 )
                                         :   new SqlParameter("@GUIDTerminalLiquidacion",  DBNull.Value),
                                     mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                         ?   new SqlParameter("@volcado", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                         :   new SqlParameter("@volcado",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //Todo Correcto
                                    else
                                    {
                                        lng_idVolcadoCabecera = mdl_ValorDevuelto_Modelo.Id;

                                        g_dct_ids_CTA_VolcadoCabecera.Add(mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "", mdl_ValorDevuelto_Modelo.Id);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "||" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "-" +
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_IDDOCUMENTORELACIONADO),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_IDPREDEFINIDOFICHERO),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Lineas
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CONTABILIDAD_LINEA))
                        {
                            //idVolcado
                            long lng_idVolcadoCabecera_AUX = long.Parse(mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                            lng_idVolcadoLinea = long.Parse(mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim() : "");

                            //IdVolcadoCabecera Existe
                            lng_idVolcadoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOCABECERA_CAMPO_ID,
                                                                                                                        lng_idVolcadoCabecera_AUX.ToString(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Si no existe inserto el registro
                            if (lng_idVolcadoCabecera != -1)
                            {
                                //Si contiene algo busco el idMayor
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idMayor == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDMAYOR),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idConcepto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Conceptos.ContainsKey(str_AUX))
                                    {
                                        lng_idConcepto = g_dct_ids_CTA_Conceptos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idConcepto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CONCEPTOS_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idConcepto > -1)
                                        {
                                            g_dct_ids_CTA_Conceptos.Add(str_AUX, lng_idConcepto);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idConcepto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDCONCEPTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idClaveAnalitica
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                {



                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                    {
                                        lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idClaveAnalitica > -1)
                                        {
                                            g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idClaveAnalitica == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDCLAVEANALITICA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                string str_SQL_Insertar = " SET IDENTITY_INSERT " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS + " ON; " +
                                                            " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_ID + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDVOLCADOCABECERA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDMAYOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IMPORTE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_CONCEPTO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_DEBEHABER + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDCONCEPTO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDCLAVEANALITICA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_OBSERVACIONES +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@id," +
                                                                "@idVolcadoCabecera," +
                                                                "@idMayor," +
                                                                "@importe," +
                                                                "@concepto," +
                                                                "@debeHaber," +
                                                                "@idConcepto," +
                                                                "@idClaveAnalitica," +
                                                                "@observaciones" +
                                                            " ); " +
                                                            " SET IDENTITY_INSERT " + Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS + " OFF; ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@id", lng_idVolcadoLinea),
                                new SqlParameter("@idVolcadoCabecera", lng_idVolcadoCabecera),
                                lng_idMayor > -1
                                        ?   new SqlParameter("@idMayor", lng_idMayor)
                                        :   new SqlParameter("@idMayor",  DBNull.Value),
                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_18),
                                new SqlParameter("@concepto", mdl_INTERNO_Tabla_Modelo.Objeto_19),
                                new SqlParameter("@debeHaber", mdl_INTERNO_Tabla_Modelo.Objeto_20),
                                lng_idConcepto > -1
                                        ?   new SqlParameter("@idConcepto", lng_idConcepto)
                                        :   new SqlParameter("@idConcepto",  DBNull.Value),
                                lng_idClaveAnalitica > -1
                                        ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica)
                                        :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                    :   new SqlParameter("@observaciones",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDVOLCADOCABECERA,
                                                                                                                                lng_idVolcadoCabecera.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = lng_idVolcadoLinea.ToString().Trim() + "_" +
                                               lng_idVolcadoCabecera.ToString().Trim();
                                    g_dct_ids_CTA_VolcadoLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS,
                                                                                                                                      lng_idVolcadoCabecera_AUX.ToString(),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_CTA_VOLCADOLINEAS_CAMPO_IDVOLCADOCABECERA),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }

                        #endregion

                        int_Contador_Linea_Excel += 1;

                     }

                }
             }
             catch (Exception ex)
             {
                 mdl_ValorDevuelto_Modelo.TodoCorrecto = false;

                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Prevolcados), true);
             }

             return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //CTP ################################################
        #region CTP_CPV
        public INTERNO_ValorDevuelto_Modelo Insertar_CTP_CPV(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTP_CPV),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_CTP_CPV.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_CTP_CPV),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTP_CPV),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTP_CPV), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CTP_CPV), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //GEN ################################################
        #region GEN_Administraciones
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Administraciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES_CAMPO_DESCRIPCION + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Administraciones),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_Administraciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_ADMINISTRACIONES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Administraciones),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Administraciones), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Administraciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Almacenes
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Almacenes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idAlmacen = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idAlmacen = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            if (str_AUX == "|EMP|")
                            {
                                lng_idEmpresa = Variables.G_MDL_INTERNO_VALORESGENERALES_MODELO.lng_idEmpresa;
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);
                            }

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                    lng_idEmpresa;
                            //......................................................................................

                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                            }
                            else
                            {
                                lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idDelegacion > -1)
                                {
                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                }
                               
                            }
                            

                            //si existe el registro continuo
                            if (lng_idDelegacion > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim() + "_" +
                                          lng_idDelegacion.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                {
                                    lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                }
                                else
                                {
                                    lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDDELEGACION,
                                                                                        lng_idDelegacion.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlmacen > -1)
                                    {
                                        g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                    }
                                    
                                }
                                

                                //Si no existe inserto el registro
                                if (lng_idAlmacen == -1)

                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDDELEGACION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@idEmpresa," +
                                                        "@idDelegacion" +
                                                    " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        new SqlParameter("@idDelegacion", lng_idDelegacion)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                  lng_idDelegacion.ToString().Trim();
                                        g_dct_ids_GEN_Almacenes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDDELEGACION),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Almacenes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Delegaciones
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Delegaciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idVendedorCobrador = -1;
            long lng_idDepartamento = -1;
            long lng_idTesoreria = -1;
            long lng_idTesoreria_Caja = -1;
            long lng_idMayor_OSSA = -1;
            long lng_idMayor_SSAE = -1;
            long lng_idMayor_CuentaContable = -1;
            long lng_idMayor_CuentaContraPartida = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idVendedorCobrador = -1;
                        lng_idDepartamento = -1;
                        lng_idTesoreria = -1;
                        lng_idTesoreria_Caja = -1;
                        lng_idMayor_OSSA = -1;
                        lng_idMayor_SSAE = -1;
                        lng_idMayor_CuentaContable = -1;
                        lng_idMayor_CuentaContraPartida = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            if (str_AUX == "|EMP|")
                            {
                                lng_idEmpresa = Variables.G_MDL_INTERNO_VALORESGENERALES_MODELO.lng_idEmpresa;
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);
                            }

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                            }
                            else
                            {
                                lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                     lng_idEmpresa.ToString().Trim(),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idDelegacion > -1)
                                {
                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idDelegacion == -1)
                            {
                                //Si contiene algo busco el idVendedorCobrador
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                    {
                                        lng_idVendedorCobrador = g_dct_ids_MAE_Vendedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idVendedorCobrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_NOMBRE,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idVendedorCobrador > -1)
                                        {
                                            g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedorCobrador);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idVendedorCobrador == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDVENDEDORCOBRADOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idDepartamento
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                    {
                                        lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDepartamento > -1)
                                        {
                                            g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idDepartamento == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDDEPARTAMENTO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idTesoreria
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                    {
                                        lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTesoreria > -1)
                                        {
                                            g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idTesoreria == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDTESORERIA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idTesoreria_Caja
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                    {
                                        lng_idTesoreria_Caja = g_dct_ids_MAE_Tesorerias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTesoreria_Caja = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTesoreria_Caja > -1)
                                        {
                                            g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria_Caja);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idTesoreria_Caja == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDTESORERIA_CAJA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_OSSA
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_OSSA = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_OSSA = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_OSSA > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_OSSA);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_OSSA == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_OSSA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_SSAE
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_SSAE = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_SSAE = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_SSAE > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_SSAE);
                                        }
                                        
                                    }
                                   
                                    //Si no existe muestro error
                                    if (lng_idMayor_SSAE == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_SSAE),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaContable
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaContable = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaContable = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaContable > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContable);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaContable == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_CUENTACONTABLE),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                //Si contiene algo busco el idMayor_CuentaContable
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaContraPartida = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaContraPartida = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaContraPartida > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContraPartida);
                                        }
                                       
                                    }

                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaContraPartida == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_TIPOMICRO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_MODELOMICRO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_TIPODELEGACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_TIPOCOBRADOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDVENDEDORCOBRADOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDDEPARTAMENTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDTESORERIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDTESORERIA_CAJA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_RECTIFICATIVA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_OSSA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_SSAE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_CUENTACONTABLE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa," +
                                                            "@tipoMicro," +
                                                            "@modeloMicro," +
                                                            "@tipoDelegacion," +
                                                            "@tipoCobrador," +
                                                            "@idVendedorCobrador," +
                                                            "@idDepartamento," +
                                                            "@idTesoreria," +
                                                            "@idTesoreria_Caja," +
                                                            "@rectificativa," +
                                                            "@idMayor_OSSA," +
                                                            "@idMayor_SSAE," +
                                                            "@idMayor_CuentaContable," +
                                                            "@idMayor_CuentaContraPartida" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                mdl_INTERNO_Tabla_Modelo.Objeto_2 != null
                                    ?   new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                                    :   new SqlParameter("@descripcion",  DBNull.Value),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                    ?   new SqlParameter("@tipoMicro", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                    :   new SqlParameter("@tipoMicro",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                    ?   new SqlParameter("@modeloMicro", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                    :   new SqlParameter("@modeloMicro",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                    ?   new SqlParameter("@tipoDelegacion", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                    :   new SqlParameter("@tipoDelegacion",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                    ?   new SqlParameter("@tipoCobrador", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                    :   new SqlParameter("@tipoCobrador",  DBNull.Value),
                                lng_idVendedorCobrador > -1
                                    ?   new SqlParameter("@idVendedorCobrador", lng_idVendedorCobrador)
                                    :   new SqlParameter("@idVendedorCobrador",  DBNull.Value),
                                lng_idDepartamento > -1
                                    ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                    :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                lng_idTesoreria > -1
                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria)
                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                lng_idTesoreria_Caja > -1
                                    ?   new SqlParameter("@idTesoreria_Caja", lng_idTesoreria_Caja)
                                    :   new SqlParameter("@idTesoreria_Caja",  DBNull.Value),
                                new SqlParameter("@rectificativa", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                lng_idMayor_OSSA > -1
                                    ?   new SqlParameter("@idMayor_OSSA", lng_idMayor_OSSA)
                                    :   new SqlParameter("@idMayor_OSSA",  DBNull.Value),
                                lng_idMayor_SSAE > -1
                                    ?   new SqlParameter("@idMayor_SSAE", lng_idMayor_SSAE)
                                    :   new SqlParameter("@idMayor_SSAE",  DBNull.Value),
                                lng_idMayor_CuentaContable > -1
                                    ?   new SqlParameter("@idMayor_CuentaContable", lng_idMayor_CuentaContable)
                                    :   new SqlParameter("@idMayor_CuentaContable",  DBNull.Value),
                                lng_idMayor_CuentaContraPartida > -1
                                    ?   new SqlParameter("@idMayor_CuentaContraPartida", lng_idMayor_CuentaContraPartida)
                                    :   new SqlParameter("@idMayor_CuentaContraPartida",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                               lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Delegaciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_EntidadesBancarias
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_EntidadesBancarias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_id = -1;
            long lng_idPais = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_id = -1;
                        lng_idPais = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                        {
                            lng_idPais = g_dct_ids_GEN_Paises[str_AUX];
                        }
                        else
                        {
                            lng_idPais = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPais > -1)
                            {
                                g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais);
                            }

                        }


                        //si existe el registro continuo
                        if (lng_idPais > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_EntidadesBancarias.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_GEN_EntidadesBancarias[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_GEN_EntidadesBancarias.Add(str_AUX, lng_id);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_BICSWIFT + 
                                                          " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idPais," +
                                                            "@bicSwift" +
                                                         " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idPais", lng_idPais),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@bicSwift", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                        :   new SqlParameter("@bicSwift",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_EntidadesBancarias),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_GEN_EntidadesBancarias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_EntidadesBancarias),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_IDPAIS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_EntidadesBancarias),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_EntidadesBancarias), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_EntidadesBancarias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_ImpuestosCabecera
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_ImpuestosCabecera(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idImpuestoCabecera = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                            {
                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                            }
                            else
                            {
                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                   lng_idEmpresa.ToString().Trim(),
                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idImpuestoCabecera > -1)
                                {
                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                }
                                
                            }
                           

                            //Si no existe inserto el registro
                            if (lng_idImpuestoCabecera == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_INTRACOMUNITARIO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_REGIMENESPECIALCANARIO +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@idEmpresa," +
                                                        "@intracomunitario," +
                                                        "@regimenEspecialCanario" +
                                                    " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@intracomunitario", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                        :   new SqlParameter("@intracomunitario",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@regimenEspecialCanario", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                        :   new SqlParameter("@regimenEspecialCanario",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosCabecera),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosCabecera),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosCabecera),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosCabecera), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosCabecera), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_ImpuestosLineas
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_ImpuestosLineas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idImpuestoLinea = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idMayor_Imp_Compras = -1;
            long lng_idMayor_Imp_Ventas = -1;
            long lng_idMayor_Rec_Ventas = -1;
            long lng_idMayor_BaseImponible_Ventas = -1;
            long lng_idMayor_BaseImponible_Compras = -1;
            long lng_idDepartamento = -1;
            long lng_idEmpresa = -1;
            string str_AUX= "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idImpuestoLinea = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idMayor_Imp_Compras = -1;
                        lng_idMayor_Imp_Ventas = -1;
                        lng_idMayor_Rec_Ventas = -1;
                        lng_idMayor_BaseImponible_Ventas = -1;
                        lng_idMayor_BaseImponible_Compras = -1;
                        lng_idDepartamento = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                        {
                            lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                        }
                        else
                        {
                            lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idImpuestoCabecera > -1)
                            {
                                g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                            }
                            
                        }
                        

                        //Si existe 
                        if (lng_idImpuestoCabecera > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                            {
                                lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                            }
                            else
                            {
                                lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idImpuestoTipo > -1)
                                {
                                    g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                }
                                
                            }
                            
                            //Si existe 
                            if (lng_idImpuestoTipo > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idImpuestoCabecera.ToString().Trim() + "_" +
                                           lng_idImpuestoTipo.ToString().Trim() + "_" +
                                           (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_ImpuestosLineas.ContainsKey(str_AUX))
                                {
                                    lng_idImpuestoLinea = g_dct_ids_GEN_ImpuestosLineas[str_AUX];
                                }
                                else
                                {
                                    lng_idImpuestoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA,
                                                                                                  lng_idImpuestoCabecera.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                  lng_idImpuestoTipo.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_FECHADESDE,
                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idImpuestoLinea > -1)
                                    {
                                        g_dct_ids_GEN_ImpuestosLineas.Add(str_AUX, lng_idImpuestoLinea);
                                    }
                                    
                                }
                                

                                //si no existe inserto
                                if (lng_idImpuestoLinea == -1)
                                {
                                    //Si contiene algo busco el idMayor_Imp_Compras
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_Imp_Compras = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_Imp_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_Imp_Compras > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Imp_Compras);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_Imp_Compras == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_IMP_COMPRAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_Imp_Ventas
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_Imp_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_Imp_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_Imp_Ventas > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Imp_Ventas);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_Imp_Ventas == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_IMP_VENTAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_Rec_Ventas
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_Rec_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_Rec_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_Rec_Ventas > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Rec_Ventas);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_Rec_Ventas == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_REC_VENTAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_BaseImponible_Ventas
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_BaseImponible_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_BaseImponible_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_BaseImponible_Ventas > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_BaseImponible_Ventas);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_BaseImponible_Ventas == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_BASEIMPONIBLE_VENTAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_BaseImponible_Compras
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_BaseImponible_Compras = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_BaseImponible_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_BaseImponible_Compras > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_BaseImponible_Compras);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idMayor_BaseImponible_Compras == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_BASEIMPONIBLE_COMPRAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idDepartamento
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                        {
                                            lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idDepartamento > -1)
                                            {
                                                g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                            }
                                            
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idDepartamento == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDDEPARTAMENTO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idEmpresa
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                        {
                                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmpresa > -1)
                                            {
                                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                            }
                                           
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idEmpresa == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDEMPRESA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IMPUESTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_RECARGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_IMP_COMPRAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_IMP_VENTAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_REC_VENTAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_BASEIMPONIBLE_VENTAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDMAYOR_BASEIMPONIBLE_COMPRAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDDEPARTAMENTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_FECHADESDE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_FECHAHASTA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idImpuestoCabecera," +
                                                            "@idImpuestoTipo," +
                                                            "@impuesto," +
                                                            "@recargo," +
                                                            "@idMayor_Imp_Compras," +
                                                            "@idMayor_Imp_Ventas," +
                                                            "@idMayor_Rec_Ventas," +
                                                            "@idMayor_BaseImponible_Ventas," +
                                                            "@idMayor_BaseImponible_Compras," +
                                                            "@idDepartamento," +
                                                            "@idEmpresa," +
                                                            "@fechaDesde," +
                                                            "@fechaHasta" +
                                                        " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera.ToString().Trim()),
                                        new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo.ToString().Trim()),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                            ?   new SqlParameter("@impuesto", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                            :   new SqlParameter("@impuesto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                        lng_idMayor_Imp_Compras > -1
                                            ?   new SqlParameter("@idMayor_Imp_Compras", lng_idMayor_Imp_Compras)
                                            :   new SqlParameter("@idMayor_Imp_Compras",  DBNull.Value),
                                        lng_idMayor_Imp_Ventas > -1
                                            ?   new SqlParameter("@idMayor_Imp_Ventas", lng_idMayor_Imp_Ventas)
                                            :   new SqlParameter("@idMayor_Imp_Ventas",  DBNull.Value),
                                        lng_idMayor_Rec_Ventas > -1
                                            ?   new SqlParameter("@idMayor_Rec_Ventas", lng_idMayor_Rec_Ventas)
                                            :   new SqlParameter("@idMayor_Rec_Ventas",  DBNull.Value),
                                        lng_idMayor_BaseImponible_Ventas > -1
                                            ?   new SqlParameter("@idMayor_BaseImponible_Ventas", lng_idMayor_BaseImponible_Ventas)
                                            :   new SqlParameter("@idMayor_BaseImponible_Ventas",  DBNull.Value),
                                        lng_idMayor_BaseImponible_Compras > -1
                                            ?   new SqlParameter("@idMayor_BaseImponible_Compras", lng_idMayor_BaseImponible_Compras)
                                            :   new SqlParameter("@idMayor_BaseImponible_Compras",  DBNull.Value),
                                        lng_idDepartamento > -1
                                            ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                            :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                        lng_idEmpresa > -1
                                            ?   new SqlParameter("@idEmpresa", lng_idEmpresa)
                                            :   new SqlParameter("@idEmpresa",  DBNull.Value),
                                        new SqlParameter("@fechaDesde", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                            ?   new SqlParameter("@fechaHasta", mdl_INTERNO_Tabla_Modelo.Objeto_13)
                                            :   new SqlParameter("@fechaHasta",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idImpuestoCabecera.ToString().Trim() + "_" +
                                                   lng_idImpuestoTipo.ToString().Trim() + "_" +
                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "");
                                        g_dct_ids_GEN_ImpuestosLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSLINEAS_CAMPO_IDIMPUESTOCABECERA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosLineas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_ImpuestosTipos
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_ImpuestosTipos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_id = -1;
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosTipos),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosTipos),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosTipos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_ImpuestosTipos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Monedas
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Monedas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_TEXTOFIN + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_REDONDEOPRECIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_REDONDEOIMPORTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_NUMERO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@Moneda," +
                                                            "@descripcion," +
                                                            "@textoFin," +
                                                            "@redondeoPrecio," +
                                                            "@redondeoImporte," +
                                                            "@numero" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@Moneda", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@textoFin", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                new SqlParameter("@redondeoPrecio", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                new SqlParameter("@redondeoImporte", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Monedas),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_Monedas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Monedas),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Monedas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Monedas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Municipios
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Municipios(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idMunicipio = -1;
            long lng_idProvincia = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idMunicipio = -1;
                        lng_idProvincia = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                        {
                            lng_idProvincia = g_dct_ids_GEN_Provincias[str_AUX];
                        }
                        else
                        {
                            lng_idProvincia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idProvincia > -1)
                            {
                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia);
                            }

                        }

                        if (lng_idProvincia > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                            {
                                lng_idMunicipio = g_dct_ids_GEN_Municipios[str_AUX];
                            }
                            else
                            {
                                lng_idMunicipio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idMunicipio > -1)
                                {
                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idMunicipio == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_AEAT + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_IDPROVINCIA +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigoINE," +
                                                                "@codigoAEAT," +
                                                                "@descripcion," +
                                                                "@idProvincia" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigoINE", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@codigoAEAT", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                    new SqlParameter("@idProvincia", lng_idProvincia )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Municipios),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                    g_dct_ids_GEN_Municipios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Municipios),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_IDPROVINCIA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Municipios),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Municipios), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Municipios), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Paises
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Paises(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO3D + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISONUMERICO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo_ISO2D," +
                                                            "@descripcion," +
                                                            "@codigo_ISO3D," +
                                                            "@codigo_Numerico" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo_ISO2D", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                ?   new SqlParameter("@codigo_ISO3D", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                :   new SqlParameter("@codigo_ISO3D",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                ?   new SqlParameter("@codigo_Numerico", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                :   new SqlParameter("@codigo_Numerico",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Paises),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_Paises.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Paises),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Paises),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Paises), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Poblaciones
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Poblaciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idPoblacion = -1;
            long lng_idMunicipio = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idPoblacion = -1;
                        lng_idMunicipio = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                        {
                            lng_idMunicipio = g_dct_ids_GEN_Municipios[str_AUX];
                        }
                        else
                        {
                            lng_idMunicipio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idMunicipio > -1)
                            {
                                g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio);
                            }

                        }

                        if (lng_idMunicipio > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                            {
                                lng_idPoblacion = g_dct_ids_GEN_Poblaciones[str_AUX];
                            }
                            else
                            {
                                lng_idPoblacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_DESCRIPCION,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idPoblacion > -1)
                                {
                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idPoblacion == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_IDMUNICIPIO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@idMunicipio" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                    new SqlParameter("@idMunicipio", lng_idMunicipio )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Poblaciones),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX =   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Poblaciones),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_IDMUNICIPIO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Poblaciones),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Poblaciones), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Poblaciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Provincias
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Provincias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idProvincia = -1;
            long lng_idPais = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idProvincia = -1;
                        lng_idPais = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                        {
                            lng_idPais = g_dct_ids_GEN_Paises[str_AUX];
                        }
                        else
                        {
                            lng_idPais = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPais > -1)
                            {
                                g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais);
                            }

                        }

                        if (lng_idPais>-1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                            {
                                lng_idProvincia = g_dct_ids_GEN_Provincias[str_AUX];
                            }
                            else
                            {
                                lng_idProvincia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idProvincia > -1)
                                {
                                    g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idProvincia == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_IDPAIS +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@idPais" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idPais", lng_idPais )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Provincias),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_GEN_Provincias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Provincias),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_IDPAIS),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Provincias),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Provincias), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Provincias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_RetencionesTipos
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_RetencionesTipos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_id = -1;
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_RetencionesTipos),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_RetencionesTipos),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_RetencionesTipos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_RetencionesTipos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_Retenciones
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_Retenciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idRetencion = -1;
            long lng_idRetencionTipo = -1;
            long lng_idMayor_Ventas = -1;
            long lng_idMayor_Compras = -1;
            long lng_idMayor_BaseRetencion_Ventas = -1;
            long lng_idMayor_BaseRetencion_Compras = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idRetencion = -1;
                        lng_idRetencionTipo = -1;
                        lng_idMayor_Ventas = -1;
                        lng_idMayor_Compras = -1;
                        lng_idMayor_BaseRetencion_Ventas = -1;
                        lng_idMayor_BaseRetencion_Compras = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                       
                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                        {
                            lng_idRetencionTipo = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                        }
                        else
                        {
                            lng_idRetencionTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idRetencionTipo > -1)
                            {
                                g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo);
                            }

                        }

                        //Si existe 
                        if (lng_idRetencionTipo > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            //Si no existe muestro error
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX =   lng_idRetencionTipo.ToString().Trim() + "_" +
                                            lng_idEmpresa.ToString().Trim() + "_" +
                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""); 
                                //......................................................................................

                                if (g_dct_ids_GEN_Retenciones.ContainsKey(str_AUX))
                                {
                                    lng_idRetencion = g_dct_ids_GEN_Retenciones[str_AUX];
                                }
                                else
                                {
                                    lng_idRetencion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDRETENCIONTIPO,
                                                                                                    lng_idRetencionTipo.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_FECHADESDE,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idRetencion > -1)
                                    {
                                        g_dct_ids_GEN_Retenciones.Add(str_AUX, lng_idRetencion);
                                    }

                                }


                                //si no existe inserto
                                if (lng_idRetencion == -1)
                                {
                                    //Si contiene algo busco el idMayor_Ventas
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_Ventas > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Ventas);
                                            }

                                        }

                                        //Si no existe muestro error
                                        if (lng_idMayor_Ventas == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_VENTAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_Compras
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_Compras = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_Compras > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Compras);
                                            }

                                        }

                                        //Si no existe muestro error
                                        if (lng_idMayor_Compras == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_COMPRAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_BaseRetencion_Ventas
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_BaseRetencion_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_BaseRetencion_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_BaseRetencion_Ventas > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_BaseRetencion_Ventas);
                                            }

                                        }

                                        //Si no existe muestro error
                                        if (lng_idMayor_BaseRetencion_Ventas == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_BASERETENCION_VENTAS),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idMayor_BaseRetencion_Compras
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                        {
                                            lng_idMayor_BaseRetencion_Compras = g_dct_ids_CTA_Mayor[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMayor_BaseRetencion_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMayor_BaseRetencion_Compras > -1)
                                            {
                                                g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_BaseRetencion_Compras);
                                            }

                                        }

                                        //Si no existe muestro error
                                        if (lng_idMayor_BaseRetencion_Compras == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_BASERETENCION_COMPRAS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }



                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDRETENCIONTIPO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_VENTAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_COMPRAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_BASERETENCION_VENTAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDMAYOR_BASERETENCION_COMPRAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_FECHADESDE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_FECHAHASTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_RETENCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_APLICAR_BASEIMPONIBLE_O_TOTAL + 
                                                            
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idRetencionTipo," +
                                                            "@idEmpresa," +
                                                            "@idMayor_Ventas," +
                                                            "@idMayor_Compras," +
                                                            "@idMayor_BaseRetencion_Ventas," +
                                                            "@idMayor_BaseRetencion_Compras," +
                                                            "@fechaDesde," +
                                                            "@fechaHasta," +
                                                            "@retencion," +
                                                            "@aplicar_BaseImponible_O_Total" +
                                                           
                                                        " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idRetencionTipo", lng_idRetencionTipo),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        lng_idMayor_Ventas > -1
                                            ?   new SqlParameter("@idMayor_Ventas", lng_idMayor_Ventas)
                                            :   new SqlParameter("@idMayor_Ventas",  DBNull.Value),
                                        lng_idMayor_Compras > -1
                                            ?   new SqlParameter("@idMayor_Compras", lng_idMayor_Compras)
                                            :   new SqlParameter("@idMayor_Compras",  DBNull.Value),
                                        lng_idMayor_BaseRetencion_Ventas > -1
                                            ?   new SqlParameter("@idMayor_BaseRetencion_Ventas", lng_idMayor_BaseRetencion_Ventas)
                                            :   new SqlParameter("@idMayor_BaseRetencion_Ventas",  DBNull.Value),
                                        lng_idMayor_BaseRetencion_Compras > -1
                                            ?   new SqlParameter("@idMayor_BaseRetencion_Compras", lng_idMayor_BaseRetencion_Compras)
                                            :   new SqlParameter("@idMayor_BaseRetencion_Compras",  DBNull.Value),
                                        new SqlParameter("@fechaDesde", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                            ?   new SqlParameter("@fechaHasta", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                            :   new SqlParameter("@fechaHasta",  DBNull.Value),
                                        new SqlParameter("@retencion", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                        new SqlParameter("@aplicar_BaseImponible_O_Total", mdl_INTERNO_Tabla_Modelo.Objeto_10)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDRETENCIONTIPO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idRetencionTipo.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                  mdl_INTERNO_Tabla_Modelo.Objeto_7;
                                        g_dct_ids_GEN_Retenciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDRETENCIONTIPO,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDEMPRESA),
                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONES_CAMPO_IDRETENCIONTIPO),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_Retenciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_TiposVias
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_TiposVias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_AEAT,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_DESCRIPCION,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_AEAT + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigoINE," +
                                                            "@codigoAEAT," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigoINE",(mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "")),
                                new SqlParameter("@codigoAEAT", (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                new SqlParameter("@descripcion", (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""))
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposVias),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");

                                g_dct_ids_GEN_TiposVias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposVias),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposVias),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposVias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region GEN_TiposCompraVenta
        public INTERNO_ValorDevuelto_Modelo Insertar_GEN_TiposCompraVenta(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_TIPO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_OPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@tipo," +
                                                            "@opcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo",mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                new SqlParameter("@opcion", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposCompraVenta),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposCompraVenta),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposCompraVenta), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_GEN_TiposCompraVenta), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //EPD
        #region EPD_Actores
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Actores(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idActor= -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idActor = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                        lng_idEmpresa.ToString();
                            //......................................................................................

                            if (g_dct_ids_EPD_Actores.ContainsKey(str_AUX))
                            {
                                lng_idActor = g_dct_ids_EPD_Actores[str_AUX];
                            }
                            else
                            {
                                lng_idActor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idActor > -1)
                                {
                                    g_dct_ids_EPD_Actores.Add(str_AUX, lng_idActor);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idActor == -1)
                            {
                                //Si contiene algo busco el iDelegacion
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                lng_idEmpresa;
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                    {
                                        lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                          lng_idEmpresa.ToString(),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDelegacion > -1)
                                        {
                                            g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                        }
                                    }

                                    //Si no existe muestro error
                                    if (lng_idDelegacion == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDDELEGACION),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_NOMBRE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDDELEGACION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDEMPRESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_FECHAALTA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_FECHABAJA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_OBSERVACIONES + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_TELEFONO_1 + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_TELEFONO_2  + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_TELEFONO_3 + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_FAX  + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CIFTIPO  + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CIF  + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_EMAIL  + 
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@nombre," +
                                                                "@idDelegacion," +
                                                                "@idEmpresa," +
                                                                "@fechaAlta," +
                                                                "@fechaBaja," +
                                                                "@observaciones," +
                                                                "@telefono_1," +
                                                                "@telefono_2," +
                                                                "@telefono_3," +
                                                                "@fax," +
                                                                "@cifTipo," +
                                                                "@cif," +
                                                                "@email" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                lng_idDelegacion >-1
                                        ?   new SqlParameter("@idDelegacion", lng_idDelegacion)
                                        :   new SqlParameter("@idDelegacion",  DBNull.Value),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                        ?   new SqlParameter("@telefono_1", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                        :   new SqlParameter("@telefono_1",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                        ?   new SqlParameter("@telefono_2", mdl_INTERNO_Tabla_Modelo.Objeto_9)
                                        :   new SqlParameter("@telefono_2",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                        ?   new SqlParameter("@telefono_3", mdl_INTERNO_Tabla_Modelo.Objeto_10)
                                        :   new SqlParameter("@telefono_3",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                        ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_11)
                                        :   new SqlParameter("@fax",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                        ?   new SqlParameter("@cifTipo", mdl_INTERNO_Tabla_Modelo.Objeto_12)
                                        :   new SqlParameter("@cifTipo",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                        ?   new SqlParameter("@cif", mdl_INTERNO_Tabla_Modelo.Objeto_13)
                                        :   new SqlParameter("@cif",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                        ?   new SqlParameter("@email", mdl_INTERNO_Tabla_Modelo.Objeto_14)
                                        :   new SqlParameter("@email",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Actores),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                lng_idEmpresa.ToString();
                                    g_dct_ids_EPD_Actores.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Actores),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Actores),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Actores), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Actores), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Asesores
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Asesores(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idAsesor = -1;
            long lng_idEmpleado = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idAsesor = -1;
                        lng_idEmpleado = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                            {
                                lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                            }
                            else
                            {
                                lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpleado > -1)
                                {
                                    g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                }

                            }

                            if (lng_idEmpleado > -1)
                            {

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                           lng_idEmpresa.ToString();
                                //......................................................................................

                                if (g_dct_ids_EPD_Asesores.ContainsKey(str_AUX))
                                {
                                    lng_idAsesor = g_dct_ids_EPD_Asesores[str_AUX];
                                }
                                else
                                {
                                    lng_idAsesor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPRESA,
                                                                                     lng_idEmpresa.ToString(),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);


                                    //Añadir al Diccionario
                                    if (lng_idAsesor > -1)
                                    {
                                        g_dct_ids_EPD_Asesores.Add(str_AUX, lng_idAsesor);
                                    }

                                }

                                //Si no existe inserto el registro
                                if (lng_idAsesor == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_CODIGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_NOMBRE + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPLEADO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPRESA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_FECHAALTA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_FECHABAJA + 
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@codigo," +
                                                                    "@nombre," +
                                                                    "@idEmpleado," +
                                                                    "@idEmpresa," +
                                                                    "@fechaAlta," +
                                                                    "@fechaBaja" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpleado", lng_idEmpleado ),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                            ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                            :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                   lng_idEmpresa.ToString();
                                        g_dct_ids_EPD_Asesores.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_CODIGO,
                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPLEADO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Asesores), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Demandados
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Demandados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idDemandado = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idDemandado = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_EPD_Demandados.ContainsKey(str_AUX))
                            {
                                lng_idDemandado = g_dct_ids_EPD_Demandados[str_AUX];
                            }
                            else
                            {
                                lng_idDemandado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idDemandado > -1)
                                {
                                    g_dct_ids_EPD_Demandados.Add(str_AUX, lng_idDemandado);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idDemandado == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_NOMBRE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_OBSERVACIONES + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CIFNIF + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_IDEMPRESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CIFTIPO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@nombre," +
                                                                "@observaciones," +
                                                                "@cifnif," +
                                                                "@idEmpresa," +
                                                                "@cifTipo" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                            ?   new SqlParameter("@cifnif", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                            :   new SqlParameter("@cifnif",  DBNull.Value),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                            ?   new SqlParameter("@cifTipo", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                            :   new SqlParameter("@cifTipo",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Demandados),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_EPD_Demandados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Demandados),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Demandados),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Demandados), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Demandados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Expedientes
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Expedientes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idExpediente = -1;
            long lng_idAsesor = -1;
            long lng_idDemandado = -1;
            long lng_idEmpresa = -1;
            long lng_idActor = -1;
            long lng_idExpedienteActor = -1;

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idExpediente = -1;
                        lng_idAsesor = -1;
                        lng_idDemandado = -1;
                        lng_idEmpresa = -1;
                        lng_idActor = -1;
                        lng_idExpedienteActor = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        #region Cabecera

                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_EXPEDIENTES_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                           lng_idEmpresa.ToString();
                                //......................................................................................

                                if (g_dct_ids_EPD_Asesores.ContainsKey(str_AUX))
                                {
                                    lng_idAsesor = g_dct_ids_EPD_Asesores[str_AUX];
                                }
                                else
                                {
                                    lng_idAsesor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAsesor > -1)
                                    {
                                        g_dct_ids_EPD_Asesores.Add(str_AUX, lng_idAsesor);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idAsesor > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "") + "_" +
                                               lng_idEmpresa.ToString();
                                    //......................................................................................

                                    if (g_dct_ids_EPD_Demandados.ContainsKey(str_AUX))
                                    {
                                        lng_idDemandado = g_dct_ids_EPD_Demandados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDemandado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_DEMANDADOS_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDemandado > -1)
                                        {
                                            g_dct_ids_EPD_Demandados.Add(str_AUX, lng_idDemandado);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idDemandado > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                            lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_EPD_Expedientes.ContainsKey(str_AUX))
                                        {
                                            lng_idExpediente = g_dct_ids_EPD_Expedientes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idExpediente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idExpediente > -1)
                                            {
                                                g_dct_ids_EPD_Expedientes.Add(str_AUX, lng_idExpediente);
                                            }

                                        }

                                        //Si no existe inserto el registro
                                        if (lng_idExpediente == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES +
                                                                        " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_DESCRIPCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_FECHAALTA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_FECHABAJA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDASESOR + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDDEMANDADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDEMPRESA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_OBSERVACIONES + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_COLECTIVO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_DEMANDANTEDEMANDADO + 
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                "@codigo," +
                                                                                "@descripcion," +
                                                                                "@fechaAlta," +
                                                                                "@fechaBaja," +
                                                                                "@idAsesor," +
                                                                                "@idDemandado," +
                                                                                "@idEmpresa," +
                                                                                "@observaciones," +
                                                                                "@colectivo," +
                                                                                "@demandanteDemandado " +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                            new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                            new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                                :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                            new SqlParameter("@idAsesor", lng_idAsesor ),
                                            new SqlParameter("@idDemandado", lng_idDemandado ),
                                            new SqlParameter("@idEmpresa", lng_idEmpresa ),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                            new SqlParameter("@colectivo", mdl_INTERNO_Tabla_Modelo.Objeto_10  ),
                                            new SqlParameter("@demandanteDemandado", mdl_INTERNO_Tabla_Modelo.Objeto_11  ),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idExpediente = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                    lng_idEmpresa.ToString().Trim();

                                                g_dct_ids_EPD_Expedientes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO,
                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDDEMANDADO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDASESOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDEMPRESA),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Expediente-Actores
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_EXPEDIENTES_ACTORES))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (!g_dct_ids_EPD_Expedientes.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDEMPRESA,
                                                                                                                                                           lng_idEmpresa.ToString()),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Expediente
                                lng_idExpediente = g_dct_ids_EPD_Expedientes[str_AUX];

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                            lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_EPD_Actores.ContainsKey(str_AUX))
                                {
                                    lng_idActor = g_dct_ids_EPD_Actores[str_AUX];
                                }
                                else
                                {
                                    lng_idActor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CODIGO,
                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idActor > -1)
                                    {
                                        g_dct_ids_EPD_Actores.Add(str_AUX, lng_idActor);
                                    }
                                }

                                if (lng_idActor > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idExpediente.ToString().Trim() + "_" +
                                              lng_idActor.ToString().Trim();
                                    //......................................................................................

                                    
                                    lng_idExpedienteActor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDEXPEDIENTE,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDEXPEDIENTE,
                                                                                                                lng_idExpediente.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDACTOR,
                                                                                                                lng_idActor.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);
                                    

                                    //Si no existe inserto el registro
                                    if (lng_idExpedienteActor == -1)
                                    {
                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES +
                                                " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDEXPEDIENTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDACTOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_OBSERVACIONES +

                                                " ) " +
                                                " VALUES " +
                                                " ( " +
                                                            "@idExpediente," +
                                                            "@idActor," +
                                                            "@observaciones" +

                                                " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idExpediente", lng_idExpediente),
                                        new SqlParameter("@idActor", lng_idActor),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar_SinID(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDACTOR,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDEXPEDIENTE + "_" + Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDACTOR,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }

                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_ACTORES_CAMPO_IDACTOR),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Expedientes), true);
            }


            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Citaciones
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Citaciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            long lng_idCitacion = -1;
            long lng_idJuzgado = -1;
            long lng_idProcedimiento = -1;
            long lng_idAsesor = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idCitacion = -1;
                        lng_idJuzgado = -1;
                        lng_idProcedimiento = -1;
                        lng_idAsesor = -1;
                        lng_idEmpresa = -1;

                        str_AUX = "";
                        #endregion

                        try
                        {


                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_EPD_Juzgados.ContainsKey(str_AUX))
                                {
                                    lng_idJuzgado = g_dct_ids_EPD_Juzgados[str_AUX];
                                }
                                else
                                {
                                    lng_idJuzgado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idJuzgado > -1)
                                    {
                                        g_dct_ids_EPD_Juzgados.Add(str_AUX, lng_idJuzgado);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idJuzgado > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                                lng_idJuzgado.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_EPD_Procedimientos.ContainsKey(str_AUX))
                                    {
                                        lng_idProcedimiento = g_dct_ids_EPD_Procedimientos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProcedimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO,
                                                                                                    lng_idJuzgado.ToString(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProcedimiento > -1)
                                        {
                                            g_dct_ids_EPD_Procedimientos.Add(str_AUX, lng_idProcedimiento);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idProcedimiento > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                                    lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_EPD_Asesores.ContainsKey(str_AUX))
                                        {
                                            lng_idAsesor = g_dct_ids_EPD_Asesores[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAsesor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_ASESORES_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAsesor > -1)
                                            {
                                                g_dct_ids_EPD_Asesores.Add(str_AUX, lng_idAsesor);
                                            }

                                        }

                                        //si existe el registro continuo
                                        if (lng_idAsesor > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                    lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_EPD_Citaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idCitacion = g_dct_ids_EPD_Citaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idCitacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_CODIGO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idCitacion > -1)
                                                {
                                                    g_dct_ids_EPD_Citaciones.Add(str_AUX, lng_idCitacion);
                                                }

                                            }

                                            //Si no existe inserto el registro
                                            if (lng_idCitacion == -1)
                                            {

                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES +
                                                                        " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_CODIGO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_DESCRIPCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDPROCEDIMIENTO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDEMPRESA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDASESOR + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_FECHAHORA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_DURACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_OBSERVACIONES +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                "@codigo," +
                                                                                "@descripcion," +
                                                                                "@idProcedimiento," +
                                                                                "@idEmpresa," +
                                                                                "@idAsesor," +
                                                                                "@fechaHora," +
                                                                                "@duracion," +
                                                                                "@observaciones" +

                                                                        " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim()),
                                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                    new SqlParameter("@idProcedimiento", lng_idProcedimiento),
                                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                    new SqlParameter("@idAsesor", lng_idAsesor),
                                                    new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_7 ),
                                                    new SqlParameter("@duracion", mdl_INTERNO_Tabla_Modelo.Objeto_8 ),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                                        :   new SqlParameter("@observaciones",  DBNull.Value)

                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_CODIGO,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                //Todo Correcto
                                                else
                                                {
                                                    lng_idCitacion = mdl_ValorDevuelto_Modelo.Id;

                                                    //Añadir al Diccionario
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                                lng_idEmpresa.ToString().Trim();

                                                    g_dct_ids_EPD_Citaciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDASESOR),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDPROCEDIMIENTO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        "idJuzgado"),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_CITACIONES_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }


                        }
                        catch (Exception ex)
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, ex.Message, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones), "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Citaciones), true);
            }


            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Juzgados
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Juzgados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idJuzgado = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idJuzgado = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_EPD_Juzgados.ContainsKey(str_AUX))
                            {
                                lng_idJuzgado = g_dct_ids_EPD_Juzgados[str_AUX];
                            }
                            else
                            {
                                lng_idJuzgado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idJuzgado > -1)
                                {
                                    g_dct_ids_EPD_Juzgados.Add(str_AUX, lng_idJuzgado);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idJuzgado == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_OBSERVACIONES + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_IDEMPRESA +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@observaciones," +
                                                                "@idEmpresa" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3 )
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Juzgados),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_EPD_Juzgados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Juzgados),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Juzgados),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Juzgados), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Juzgados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Materias
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Materias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idMateria = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idMateria = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_EPD_Materias.ContainsKey(str_AUX))
                            {
                                lng_idMateria = g_dct_ids_EPD_Materias[str_AUX];
                            }
                            else
                            {
                                lng_idMateria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);


                                //Añadir al Diccionario
                                if (lng_idMateria > -1)
                                {
                                    g_dct_ids_EPD_Materias.Add(str_AUX, lng_idMateria);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idMateria == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_IDEMPRESA +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@descripcion," +
                                                                "@idEmpresa" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa )
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Materias),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_EPD_Materias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_CODIGO,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Materias),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Materias),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Materias), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Materias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region EPD_Procedimientos
        public INTERNO_ValorDevuelto_Modelo Insertar_EPD_Procedimientos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idProcedimiento = -1;
            long lng_idExpediente = -1;
            long lng_idMateria = -1;
            long lng_idEmpresa = -1;
            long lng_idJuzgado = -1;

            long lng_idActor = -1;
            long lng_idProcedimientoActor = -1;
            long lng_idProcedimientoNotificacion = -1;

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idProcedimiento = -1;
                        lng_idExpediente = -1;
                        lng_idMateria = -1;
                        lng_idEmpresa = -1;
                        lng_idJuzgado = -1;

                        lng_idActor = -1;
                        lng_idProcedimientoActor = -1;
                        lng_idProcedimientoNotificacion = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString() : "");

                        try
                        {

                            #region Cabecera

                            if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PROCEDIMIENTOS_CABECERA))
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                {
                                    lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                                }
                                else
                                {
                                    lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmpresa > -1)
                                    {
                                        g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                    }

                                }

                                //si existe el registro continuo
                                if (lng_idEmpresa > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                                lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_EPD_Expedientes.ContainsKey(str_AUX))
                                    {
                                        lng_idExpediente = g_dct_ids_EPD_Expedientes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idExpediente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_EXPEDIENTES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idExpediente > -1)
                                        {
                                            g_dct_ids_EPD_Expedientes.Add(str_AUX, lng_idExpediente);
                                        }

                                    }

                                    //si existe el registro continuo
                                    if (lng_idExpediente > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_EPD_Juzgados.ContainsKey(str_AUX))
                                        {
                                            lng_idJuzgado = g_dct_ids_EPD_Juzgados[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idJuzgado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_JUZGADOS_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idJuzgado > -1)
                                            {
                                                g_dct_ids_EPD_Juzgados.Add(str_AUX, lng_idJuzgado);
                                            }

                                        }

                                        //si existe el registro continuo
                                        if (lng_idJuzgado > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                        lng_idEmpresa.ToString();
                                            //......................................................................................

                                            if (g_dct_ids_EPD_Materias.ContainsKey(str_AUX))
                                            {
                                                lng_idMateria = g_dct_ids_EPD_Materias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMateria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_CODIGO,
                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_EPD_MATERIAS_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa.ToString(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMateria > -1)
                                                {
                                                    g_dct_ids_EPD_Materias.Add(str_AUX, lng_idMateria);
                                                }

                                            }

                                            //si existe el registro continuo
                                            if (lng_idMateria > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                        lng_idJuzgado.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_EPD_Procedimientos.ContainsKey(str_AUX))
                                                {
                                                    lng_idProcedimiento = g_dct_ids_EPD_Procedimientos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idProcedimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO,
                                                                                                                                lng_idJuzgado.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idProcedimiento > -1)
                                                    {
                                                        g_dct_ids_EPD_Procedimientos.Add(str_AUX, lng_idProcedimiento);
                                                    }

                                                }

                                                //Si no existe inserto el registro
                                                if (lng_idProcedimiento == -1)
                                                {
                                                    
                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMEROEJECUCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDEXPEDIENTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDMATERIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_OBSERVACIONES +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                        "@numero," +
                                                                                        "@numeroEjecucion," +
                                                                                        "@idExpediente," +
                                                                                        "@idMateria," +
                                                                                        "@idEmpresa," +
                                                                                        "@idJuzgado," +
                                                                                        "@observaciones" +

                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                    new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                                        ?   new SqlParameter("@numeroEjecucion", mdl_INTERNO_Tabla_Modelo.Objeto_3 )
                                                        :   new SqlParameter("@numeroEjecucion",  DBNull.Value),
                                                    new SqlParameter("@idExpediente", lng_idExpediente),
                                                    new SqlParameter("@idMateria", lng_idMateria),
                                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                    new SqlParameter("@idJuzgado", lng_idJuzgado ),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                                        :   new SqlParameter("@observaciones",  DBNull.Value)

                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idProcedimiento = mdl_ValorDevuelto_Modelo.Id;

                                                        //Añadir al Diccionario
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                                    lng_idJuzgado.ToString().Trim();

                                                        g_dct_ids_EPD_Procedimientos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDMATERIA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDEXPEDIENTE),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }

                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDEMPRESA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            #endregion

                            #region Procedimientos-Actores
                            if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PROCEDIMIENTOS_ACTORES))
                            {
                                //idJuzgado
                                if (g_dct_ids_EPD_Juzgados.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""))
                                {
                                    lng_idJuzgado = g_dct_ids_EPD_Juzgados[mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""];
                                }

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idJuzgado.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_EPD_Procedimientos.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO,
                                                                                                                                                               lng_idJuzgado.ToString()),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //idEmpresa
                                    lng_idEmpresa = g_dct_ids_GEN_Empresas[(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")];
                                    
                                    //Procedimiento
                                    lng_idProcedimiento = g_dct_ids_EPD_Procedimientos[str_AUX];

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() + "_" +
                                                lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_EPD_Actores.ContainsKey(str_AUX))
                                    {
                                        lng_idActor = g_dct_ids_EPD_Actores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idActor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_ACTORES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idActor > -1)
                                        {
                                            g_dct_ids_EPD_Actores.Add(str_AUX, lng_idActor);
                                        }
                                    }

                                    if (lng_idActor > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idProcedimiento.ToString().Trim() + "_" +
                                                  lng_idActor.ToString().Trim();
                                        //......................................................................................


                                        lng_idProcedimientoActor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDPROCEDIMIENTO,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDPROCEDIMIENTO,
                                                                                                                    lng_idProcedimiento.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDACTOR,
                                                                                                                    lng_idActor.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);



                                        //Si no existe inserto el registro
                                        if (lng_idProcedimientoActor == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES +
                                                    " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDPROCEDIMIENTO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDACTOR + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_OBSERVACIONES +

                                                    " ) " +
                                                    " VALUES " +
                                                    " ( " +
                                                                "@idProcedimiento," +
                                                                "@idActor," +
                                                                "@observaciones" +

                                                    " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                            new SqlParameter("@idProcedimiento", lng_idProcedimiento),
                                            new SqlParameter("@idActor", lng_idActor),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar_SinID(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDACTOR,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDPROCEDIMIENTO + "_" + Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDACTOR,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_ACTORES_CAMPO_IDACTOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                            }
                            //###################################################################################################
                            #endregion

                            #region Procedimientos-Notificaciones
                            if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_PROCEDIMIENTOS_NOTIFICACIONES))
                            {
                                //idJuzgado
                                if (g_dct_ids_EPD_Juzgados.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""))
                                {
                                    lng_idJuzgado = g_dct_ids_EPD_Juzgados[mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""];
                                }

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idJuzgado.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_EPD_Procedimientos.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_NUMERO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOS_CAMPO_IDJUZGADO,
                                                                                                                                                               lng_idJuzgado.ToString()),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Procedimiento
                                    lng_idProcedimiento = g_dct_ids_EPD_Procedimientos[str_AUX];

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idProcedimiento.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "");
                                    //......................................................................................


                                    lng_idProcedimientoNotificacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_IDPROCEDIMIENTO,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_IDPROCEDIMIENTO,
                                                                                                                lng_idProcedimiento.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_FECHARECEPCION,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);



                                    //Si no existe inserto el registro
                                    if (lng_idProcedimientoNotificacion == -1)
                                    {
                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES +
                                                " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_IDPROCEDIMIENTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_FECHARECEPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_OBSERVACIONES +

                                                " ) " +
                                                " VALUES " +
                                                " ( " +
                                                            "@idProcedimiento," +
                                                            "@fechaRecepcion," +
                                                            "@observaciones" +

                                                " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idProcedimiento", lng_idProcedimiento),
                                        new SqlParameter("@fechaRecepcion",  mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar_SinID(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_IDPROCEDIMIENTO,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_IDPROCEDIMIENTO + "_" + Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES_CAMPO_FECHARECEPCION,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" + (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_EPD_PROCEDIMIENTOSNOTIFICACIONES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }

                                }
                            }
                            //###################################################################################################
                            #endregion

                        }
                        catch (Exception ex)
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, ex.Message, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos), "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EPD_Procedimientos), true);
            }


            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //INV ################################################
        #region INV_Inventario
        public INTERNO_ValorDevuelto_Modelo Insertar_Inventarios(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";

            //Identificador
            string str_Identificador = "";
            long lng_idInventarioCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpleado = -1;
            long lng_idInventarioLinea = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idInventarioLinea_Detalle = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_idArticulo_Trazabilidad = -1;
            long lng_idInventarioLinea_Trazabilidad = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idInventarioCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpleado = -1;
                        lng_idInventarioLinea = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idInventarioLinea_Detalle = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_idArticulo_Trazabilidad = -1;
                        lng_idInventarioLinea_Trazabilidad = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }


                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                             (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_INV_InventarioCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idInventarioCabecera = g_dct_ids_INV_InventarioCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInventarioCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInventarioCabecera > -1)
                                        {
                                            g_dct_ids_INV_InventarioCabecera.Add(str_AUX, lng_idInventarioCabecera);
                                        }

                                    }


                                    //Si no existe inserto el registro
                                    if (lng_idInventarioCabecera == -1)
                                    {

                                        //Si contiene algo busco el idCargo
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpleado > -1)
                                                {
                                                    g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idEmpleado == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPLEADO),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA +
                                                                    " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_DESCRIPCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_FECHA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_ESTADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_OBSERVACIONES +
                                                                    " ) " +
                                                                    " OUTPUT INSERTED.id " +
                                                                    " VALUES " +
                                                                    " ( " +
                                                                            "@numeroDocumento," +
                                                                            "@descripcion," +
                                                                            "@idDelegacion," +
                                                                            "@idEmpresa," +
                                                                            "@fecha," +
                                                                            "@estado," +
                                                                            "@idEmpleado," +
                                                                            "@observaciones" +
                                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                        new SqlParameter("@idEmpresa",lng_idEmpresa),
                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                            :   new SqlParameter("@estado",  DBNull.Value),
                                        lng_idEmpleado > -1
                                            ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                            :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        //Todo Correcto
                                        else
                                        {
                                            lng_idInventarioCabecera = mdl_ValorDevuelto_Modelo.Id;

                                            //Añadir al Diccionario
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                      lng_idEmpresa.ToString().Trim() + "_" +
                                                      lng_idDelegacion.ToString().Trim() + "_" +
                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");

                                            g_dct_ids_INV_InventarioCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);

                                        }
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Linea
                        //Linea ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Coger el id Cabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");

                            if (!g_dct_ids_INV_InventarioCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDINVENTARIOCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Inventario Cabecera
                                lng_idInventarioCabecera = g_dct_ids_INV_InventarioCabecera[str_AUX];

                                //Si no existe el articulo es un error controlado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" +
                                                lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                    {
                                        lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                 mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticulo > -1)
                                        {
                                            g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idArticulo > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                        {
                                            lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlmacen > -1)
                                            {
                                                g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idAlmacen > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                }

                                            }


                                            //si existe el registro continuo
                                            if (lng_idEmbalaje > -1)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                    }

                                                }


                                                //si existe el registro continuo
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {

                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" + 
                                                              lng_idInventarioCabecera.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_INV_InventarioLinea.ContainsKey(str_AUX))
                                                    {
                                                        lng_idInventarioLinea = g_dct_ids_INV_InventarioLinea[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idInventarioLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                  lng_idArticulo.ToString(),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "0"),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDINVENTARIOCABECERA,
                                                                                                                  lng_idInventarioCabecera.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idInventarioLinea > -1)
                                                        {
                                                            g_dct_ids_INV_InventarioLinea.Add(str_AUX, lng_idInventarioLinea);
                                                        }

                                                    }


                                                    //si no existe inserto
                                                    if (lng_idInventarioLinea == -1)
                                                    {
                                                        //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                {
                                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                }

                                                            }

                                                            //Si no existe muestro error
                                                            if (lng_idEmbalaje_SegundaUnidad == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }

                                                        //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                {
                                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                }

                                                            }

                                                            //Si no existe muestro error
                                                            if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }


                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS +
                                                                       " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDINVENTARIOCABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDALMACEN + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDUBICACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_CANTIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_OPERACIÓN + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                       " ) " +
                                                                       " OUTPUT INSERTED.id " +
                                                                       " VALUES " +
                                                                       " ( " +
                                                                              "@idInventarioCabecera," +
                                                                              "@idArticulo," +
                                                                              "@numeroLinea," +
                                                                              "@idAlmacen," +
                                                                              "@idUbicacion," +
                                                                              "@cantidad," +
                                                                              "@idEmbalaje," +
                                                                              "@relacion," +
                                                                              "@operacion," +
                                                                              "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                              "@segundaUnidad_relacion," +
                                                                              "@segundaUnidad_idEmbalaje," +
                                                                              "@segundaUnidad_cantidad," +
                                                                              "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                              "@embalajePrincipalDelArticulo_relacion," +
                                                                              "@embalajePrincipalDelArticulo_operacion," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                       " ) ";

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                        new SqlParameter("@idInventarioCabecera", lng_idInventarioCabecera),
                                                        new SqlParameter("@idArticulo", lng_idArticulo),
                                                        new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                        new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                        lng_idUbicacion > -1
                                                            ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                            :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                        new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                        new SqlParameter("@idEmbalaje",lng_idEmbalaje),
                                                        new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_16),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                            ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                            :   new SqlParameter("@operacion",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                            ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                            :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                            ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                            :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_SegundaUnidad > -1
                                                            ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                            :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                           ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                           :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_23),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_26 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_26 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value)
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                                       mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        //Todo Correcto
                                                        else
                                                        {
                                                            lng_idInventarioLinea = mdl_ValorDevuelto_Modelo.Id;

                                                            //Añadir al Diccionario
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                                                      lng_idInventarioCabecera.ToString().Trim();

                                                            g_dct_ids_INV_InventarioLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDEMBALAJE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDALMACEN),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        #region Linea Detalle
                        //LINEA DETALLE ###################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_DETALLEPRECIO))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }


                            //Coger el idCabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            if (!g_dct_ids_INV_InventarioCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_FECHA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Inventario Cabecera
                                lng_idInventarioCabecera = g_dct_ids_INV_InventarioCabecera[str_AUX];

                                //idArticulo
                                if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                {
                                    lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                }

                                //Coger el idLinea
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                          (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                            lng_idInventarioCabecera.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_INV_InventarioLinea.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Inventario Cabecera
                                    lng_idInventarioLinea = g_dct_ids_INV_InventarioLinea[str_AUX];

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idNomenclaturaPrecio > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idInventarioLinea.ToString().Trim() + "_" +
                                                  lng_idNomenclaturaPrecio.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_INV_InventarioLineaDetalle.ContainsKey(str_AUX))
                                        {
                                            lng_idInventarioLinea_Detalle = g_dct_ids_INV_InventarioLineaDetalle[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idInventarioLinea_Detalle = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDINVENTARIOLINEA,
                                                                                                                lng_idInventarioLinea.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO,
                                                                                                                lng_idNomenclaturaPrecio.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idInventarioLinea_Detalle > -1)
                                            {
                                                g_dct_ids_INV_InventarioLineaDetalle.Add(str_AUX, lng_idInventarioLinea_Detalle);
                                            }

                                        }


                                        //Si no existe inserto el registro
                                        if (lng_idInventarioLinea_Detalle == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE +
                                                                        " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDINVENTARIOLINEA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_PRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IMPORTE +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                               "@idInventarioLinea," +
                                                                               "@idNomenclaturaPrecio," +
                                                                               "@precio," +
                                                                               "@importe" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idInventarioLinea", lng_idInventarioLinea),
                                                new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_29),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                :   new SqlParameter("@importe",  DBNull.Value),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDINVENTARIOLINEA,
                                                                                                                                           lng_idInventarioLinea.ToString().Trim(),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idInventarioLinea_Detalle = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = lng_idInventarioLinea.ToString().Trim() + "_" +
                                                 lng_idNomenclaturaPrecio.ToString().Trim();

                                                g_dct_ids_INV_InventarioLineaDetalle.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        #region Linea Trazabilidad
                        //LINEA TRAZABILIDAD ###################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_TRAZABILIDAD))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Coger el idCabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            if (!g_dct_ids_INV_InventarioCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(  Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD,
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOCABECERA_CAMPO_FECHA,
                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                                         "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Inventario Cabecera
                                lng_idInventarioCabecera = g_dct_ids_INV_InventarioCabecera[str_AUX];

                                //idArticulo
                                if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                {
                                    lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                }

                                //Coger el idLinea
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "") + "_" +
                                            (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                            lng_idInventarioCabecera.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_INV_InventarioLinea.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Inventario Cabecera
                                    lng_idInventarioLinea = g_dct_ids_INV_InventarioLinea[str_AUX];

                                    //Si el lote no es nulo es que hay trazabilidad sino no
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_31 != null)
                                    {

                                        //idArticulo_Trazabilidad
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim() + "_" + lng_idArticulo.ToString().Trim();

                                        if (g_dct_ids_MAE_Articulos_Trazabilidad.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo_Trazabilidad = g_dct_ids_MAE_Articulos_Trazabilidad[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo( Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO,
                                                                                                                         lng_idArticulo.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo_Trazabilidad > -1)
                                            {
                                                g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, lng_idArticulo_Trazabilidad);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idArticulo_Trazabilidad > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idInventarioLinea.ToString().Trim() + "_" +
                                                      lng_idArticulo_Trazabilidad.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_INV_InventarioLineaTrazabilidad.ContainsKey(str_AUX))
                                            {
                                                lng_idInventarioLinea_Trazabilidad = g_dct_ids_INV_InventarioLineaTrazabilidad[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idInventarioLinea_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDINVENTARIOLINEA,
                                                                                                                    lng_idInventarioLinea.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                    lng_idArticulo_Trazabilidad.ToString(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idInventarioLinea_Trazabilidad > -1)
                                                {
                                                    g_dct_ids_INV_InventarioLineaTrazabilidad.Add(str_AUX, lng_idInventarioLinea_Trazabilidad);
                                                }

                                            }


                                            //Si no existe inserto el registro
                                            if (lng_idInventarioLinea_Trazabilidad == -1)
                                            {
                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDINVENTARIOLINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_CANTIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_SEGUNDAUNIDAD_CANTIDAD +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                         "@idInventarioLinea," +
                                                                                         "@idArticulo_Trazabilidad," +
                                                                                         "@cantidad," +
                                                                                         "@segundaUnidad_cantidad" +
                                                                                " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                new SqlParameter("@idInventarioLinea", lng_idInventarioLinea),
                                                new SqlParameter("@idArticulo_Trazabilidad", lng_idArticulo_Trazabilidad),
                                                new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_32),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                    ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                    :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_DETALLE_CAMPO_IDINVENTARIOLINEA,
                                                                                                                                                   lng_idInventarioLinea.ToString().Trim(),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD,
                                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idInventarioLinea.ToString().Trim() + "_" +
                                                              lng_idArticulo_Trazabilidad;

                                                    g_dct_ids_INV_InventarioLineaTrazabilidad.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDINVENTARIOLINEA,
                                                                                                                                     lng_idInventarioLinea.ToString().Trim(),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD),
                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                                                         "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO(Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                                                                 "lote",
                                                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_31 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim() : ""),
                                                                                                                                                                                  "Articulo",
                                                                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_INV_INVENTARIOLINEAS_TRAZABILIDAD),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                            
                                        }
                                    }
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Inventarios), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region INV_VariacionExistencia
        public INTERNO_ValorDevuelto_Modelo Insertar_VariacionesExistencias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";

            //Identificador
            string str_Identificador = "";
            long lng_idVariacionExistenciaCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            long lng_idTipoVariacionExistencia = -1;
            long lng_idEmpleado = -1;
            long lng_idVariacionExistenciaLinea = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idVariacionExistenciaLinea_Detalle = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_idArticulo_Trazabilidad = -1;
            long lng_idVariacionExistenciaLinea_Trazabilidad = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    //Antes de nada ordenar el listado por codigo que este caso es el Objeto_1
                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idVariacionExistenciaCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        lng_idTipoVariacionExistencia = -1;
                        lng_idEmpleado = -1;
                        lng_idVariacionExistenciaLinea = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idVariacionExistenciaLinea_Detalle = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_idArticulo_Trazabilidad = -1;
                        lng_idVariacionExistenciaLinea_Trazabilidad = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }


                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + 
                                                lng_idEmpresa;
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }


                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_MAE_TiposVariacionExistencias.ContainsKey(str_AUX))
                                    {
                                        lng_idTipoVariacionExistencia = g_dct_ids_MAE_TiposVariacionExistencias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTipoVariacionExistencia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTipoVariacionExistencia > -1)
                                        {
                                            g_dct_ids_MAE_TiposVariacionExistencias.Add(str_AUX, lng_idTipoVariacionExistencia);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idTipoVariacionExistencia > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                    lng_idEmpresa.ToString().Trim() + "_" +
                                                    lng_idDelegacion.ToString().Trim() + "_" +
                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_INV_VariacionExistenciaCabecera.ContainsKey(str_AUX))
                                        {
                                            lng_idVariacionExistenciaCabecera = g_dct_ids_INV_VariacionExistenciaCabecera[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idVariacionExistenciaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idVariacionExistenciaCabecera > -1)
                                            {
                                                g_dct_ids_INV_VariacionExistenciaCabecera.Add(str_AUX, lng_idVariacionExistenciaCabecera);
                                            }

                                        }


                                        //Si no existe inserto el registro
                                        if (lng_idVariacionExistenciaCabecera == -1)
                                        {

                                            //Si contiene algo busco el idCargo
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmpleado > -1)
                                                    {
                                                        g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idEmpleado == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPLEADO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA +
                                                                        " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_DESCRIPCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDTIPOVARIACIONEXISTENCIA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_FECHA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_ESTADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_OBSERVACIONES +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                "@numeroDocumento," +
                                                                                "@descripcion," +
                                                                                "@idDelegacion," +
                                                                                "@idEmpresa," +
                                                                                "@idTipoVariacionExistencias," +
                                                                                "@fecha," +
                                                                                "@estado," +
                                                                                "@idEmpleado," +
                                                                                "@observaciones" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                            new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                            new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                            new SqlParameter("@idDelegacion", lng_idDelegacion),
                                            new SqlParameter("@idEmpresa",lng_idEmpresa),
                                            new SqlParameter("@idTipoVariacionExistencias",lng_idTipoVariacionExistencia),
                                            new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                              mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                                :   new SqlParameter("@estado",  DBNull.Value),
                                            lng_idEmpleado > -1
                                                ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idVariacionExistenciaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                                           lng_idEmpresa.ToString().Trim() + "_" +
                                                           lng_idDelegacion.ToString().Trim() + "_" +
                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");

                                                g_dct_ids_INV_VariacionExistenciaCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDTIPOVARIACIONEXISTENCIA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Linea
                        //Linea ###########################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }


                            //Coger el id Cabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");

                            if (!g_dct_ids_INV_VariacionExistenciaCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDVARIACIONEXISTENCIACABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Variacion Cabecera
                                lng_idVariacionExistenciaCabecera = g_dct_ids_INV_VariacionExistenciaCabecera[str_AUX];

                                //Si no existe el articulo es un error controlado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" + 
                                              lng_idEmpresa.ToString();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                    {
                                        lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                              lng_idEmpresa.ToString().Trim(),
                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticulo > -1)
                                        {
                                            g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idArticulo > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                        {
                                            lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlmacen > -1)
                                            {
                                                g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idAlmacen > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                }

                                            }


                                            //si existe el registro continuo
                                            if (lng_idEmbalaje > -1)
                                            {

                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : "") + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                    }

                                                }


                                                //si existe el registro continuo
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {

                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                                              lng_idVariacionExistenciaCabecera.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_INV_VariacionExistenciaLinea.ContainsKey(str_AUX))
                                                    {
                                                        lng_idVariacionExistenciaLinea = g_dct_ids_INV_VariacionExistenciaLinea[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idVariacionExistenciaLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "0"),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDVARIACIONEXISTENCIACABECERA,
                                                                                                                  lng_idVariacionExistenciaCabecera.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idVariacionExistenciaLinea > -1)
                                                        {
                                                            g_dct_ids_INV_VariacionExistenciaLinea.Add(str_AUX, lng_idVariacionExistenciaLinea);
                                                        }

                                                    }


                                                    //si no existe inserto
                                                    if (lng_idVariacionExistenciaLinea == -1)
                                                    {
                                                        //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                {
                                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                }

                                                            }

                                                            //Si no existe muestro error
                                                            if (lng_idEmbalaje_SegundaUnidad == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }

                                                        //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                {
                                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                }

                                                            }

                                                            //Si no existe muestro error
                                                            if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }


                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS +
                                                                       " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDVARIACIONEXISTENCIACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDALMACEN + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDUBICACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_CANTIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_OPERACIÓN + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                       " ) " +
                                                                       " OUTPUT INSERTED.id " +
                                                                       " VALUES " +
                                                                       " ( " +
                                                                              "@idVariacionExistenciaCabecera," +
                                                                              "@idArticulo," +
                                                                              "@numeroLinea," +
                                                                              "@idAlmacen," +
                                                                              "@idUbicacion," +
                                                                              "@cantidad," +
                                                                              "@idEmbalaje," +
                                                                              "@relacion," +
                                                                              "@operacion," +
                                                                              "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                              "@segundaUnidad_relacion," +
                                                                              "@segundaUnidad_idEmbalaje," +
                                                                              "@segundaUnidad_cantidad," +
                                                                              "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                              "@embalajePrincipalDelArticulo_relacion," +
                                                                              "@embalajePrincipalDelArticulo_operacion," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                              "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                       " ) ";

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                        new SqlParameter("@idVariacionExistenciaCabecera", lng_idVariacionExistenciaCabecera),
                                                        new SqlParameter("@idArticulo", lng_idArticulo),
                                                        new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                                        new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                        lng_idUbicacion > -1
                                                            ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                            :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                        new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_15),
                                                        new SqlParameter("@idEmbalaje",lng_idEmbalaje),
                                                        new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_17),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                            ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                            :   new SqlParameter("@operacion",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                            ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                            :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                            ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                            :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_SegundaUnidad > -1
                                                            ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                            :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                           ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                           :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_23),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_26 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_26 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_27 )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                           ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                           :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value)
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                                       mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        //Todo Correcto
                                                        else
                                                        {
                                                            lng_idVariacionExistenciaLinea = mdl_ValorDevuelto_Modelo.Id;

                                                            //Añadir al Diccionario
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                                                      lng_idVariacionExistenciaCabecera.ToString().Trim();

                                                            g_dct_ids_INV_VariacionExistenciaLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDEMBALAJE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDALMACEN),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "")),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        #region Linea Detalle
                        //LINEA DETALLE ###################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_DETALLEPRECIO))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Coger el idCabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                            if (!g_dct_ids_INV_VariacionExistenciaCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_FECHA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //VariacionExistencia Cabecera
                                lng_idVariacionExistenciaCabecera = g_dct_ids_INV_VariacionExistenciaCabecera[str_AUX];

                                //idArticulo
                                if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                {
                                    lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                }

                                //Coger el idLinea
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                          (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                            lng_idVariacionExistenciaCabecera.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_INV_VariacionExistenciaLinea.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //VariacionExistencia Cabecera
                                    lng_idVariacionExistenciaLinea = g_dct_ids_INV_VariacionExistenciaLinea[str_AUX];

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                        }

                                    }


                                    //si existe el registro continuo
                                    if (lng_idNomenclaturaPrecio > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idVariacionExistenciaLinea.ToString().Trim() + "_" +
                                                  lng_idNomenclaturaPrecio.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_INV_VariacionExistenciaLineaDetalle.ContainsKey(str_AUX))
                                        {
                                            lng_idVariacionExistenciaLinea_Detalle = g_dct_ids_INV_VariacionExistenciaLineaDetalle[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idVariacionExistenciaLinea_Detalle = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDVARIACIONEXISTENCIALINEA,
                                                                                                                lng_idVariacionExistenciaLinea.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO,
                                                                                                                lng_idNomenclaturaPrecio.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idVariacionExistenciaLinea_Detalle > -1)
                                            {
                                                g_dct_ids_INV_VariacionExistenciaLineaDetalle.Add(str_AUX, lng_idVariacionExistenciaLinea_Detalle);
                                            }

                                        }


                                        //Si no existe inserto el registro
                                        if (lng_idVariacionExistenciaLinea_Detalle == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE +
                                                                        " (" +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDVARIACIONEXISTENCIALINEA + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_PRECIO + "," +
                                                                             Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IMPORTE +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                               "@idVariacionExistenciaLinea," +
                                                                               "@idNomenclaturaPrecio," +
                                                                               "@precio," +
                                                                               "@importe" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idVariacionExistenciaLinea", lng_idVariacionExistenciaLinea),
                                                new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_30),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                :   new SqlParameter("@importe",  DBNull.Value),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDVARIACIONEXISTENCIALINEA,
                                                                                                                                           lng_idVariacionExistenciaLinea.ToString().Trim(),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idVariacionExistenciaLinea_Detalle = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = lng_idVariacionExistenciaLinea.ToString().Trim() + "_" +
                                                           lng_idNomenclaturaPrecio.ToString().Trim();

                                                g_dct_ids_INV_VariacionExistenciaLineaDetalle.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE,
                                                                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDNOMENCLATURAPRECIO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        #region Linea Trazabilidad
                        //LINEA TRAZABILIDAD ###################################################################################
                        else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_TRAZABILIDAD))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Coger el idCabecera
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                     (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                            if (!g_dct_ids_INV_VariacionExistenciaCabecera.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIACABECERA_CAMPO_FECHA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "")),
                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //VariacionExistencia Cabecera
                                lng_idVariacionExistenciaCabecera = g_dct_ids_INV_VariacionExistenciaCabecera[str_AUX];

                                //idArticulo
                                if (g_dct_ids_MAE_Articulos.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" + lng_idEmpresa.ToString()))
                                {
                                    lng_idArticulo = g_dct_ids_MAE_Articulos[mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" + lng_idEmpresa.ToString()];
                                }

                                //Coger el idLinea
                                str_AUX =   (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : "") + "_" +
                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "") + "_" +
                                            lng_idVariacionExistenciaCabecera.ToString().Trim();
                                //......................................................................................

                                if (!g_dct_ids_INV_VariacionExistenciaLinea.ContainsKey(str_AUX))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_ID,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD,
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_IDARTICULO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "")),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //VariacionExistencia Cabecera
                                    lng_idVariacionExistenciaLinea = g_dct_ids_INV_VariacionExistenciaLinea[str_AUX];

                                    //Si el lote no es nulo es que hay trazabilidad sino no
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null)
                                    {

                                        //idArticulo_Trazabilidad
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() + "_" + lng_idArticulo.ToString();
                                        if (g_dct_ids_MAE_Articulos_Trazabilidad.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo_Trazabilidad = g_dct_ids_MAE_Articulos_Trazabilidad[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO,
                                                                                                                         lng_idArticulo.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo_Trazabilidad > -1)
                                            {
                                                g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, lng_idArticulo_Trazabilidad);
                                            }

                                        }


                                        //si existe el registro continuo
                                        if (lng_idArticulo_Trazabilidad > -1)
                                        {

                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idVariacionExistenciaLinea.ToString().Trim() + "_" +
                                                      lng_idArticulo_Trazabilidad.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad.ContainsKey(str_AUX))
                                            {
                                                lng_idVariacionExistenciaLinea_Trazabilidad = g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idVariacionExistenciaLinea_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDVARIACIONEXISTENCIALINEA,
                                                                                                                lng_idVariacionExistenciaLinea.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                lng_idArticulo_Trazabilidad.ToString(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idVariacionExistenciaLinea_Trazabilidad > -1)
                                                {
                                                    g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad.Add(str_AUX, lng_idVariacionExistenciaLinea_Trazabilidad);
                                                }

                                            }


                                            //Si no existe inserto el registro
                                            if (lng_idVariacionExistenciaLinea_Trazabilidad == -1)
                                            {
                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD +
                                                                                " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDVARIACIONEXISTENCIALINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_CANTIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_SEGUNDAUNIDAD_CANTIDAD +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                         "@idVariacionExistenciaLinea," +
                                                                                         "@idArticulo_Trazabilidad," +
                                                                                         "@cantidad," +
                                                                                         "@segundaUnidad_cantidad" +
                                                                                " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                    new SqlParameter("@idVariacionExistenciaLinea", lng_idVariacionExistenciaLinea),
                                                    new SqlParameter("@idArticulo_Trazabilidad", lng_idArticulo_Trazabilidad),
                                                    new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_33),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                    ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                    :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_DETALLE_CAMPO_IDVARIACIONEXISTENCIALINEA,
                                                                                                                                                   lng_idVariacionExistenciaLinea.ToString().Trim(),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD,
                                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idVariacionExistenciaLinea.ToString().Trim() + "_" +
                                                              lng_idArticulo_Trazabilidad;

                                                    g_dct_ids_INV_VariacionExistenciaLineaTrazabilidad.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDVARIACIONEXISTENCIALINEA,
                                                                                                                                   lng_idVariacionExistenciaLinea.ToString().Trim(),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO(Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                                                                "lote",
                                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim() : ""),
                                                                                                                                                                                 "Articulo",
                                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_INV_VARIACIONEXISTENCIALINEAS_TRAZABILIDAD),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                }
                            }
                        }
                        // ################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_VariacionesExistencias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //MAE ################################################
        #region MAE_AbonosTipos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_AbonosTipos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_AbonosTipos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_AbonosTipos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_AbonosTipos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_AbonosTipos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_AbonosTipos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_AgrupacionesArticulos
        public INTERNO_ValorDevuelto_Modelo Insertar_AgrupacionArticulos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idAgrupacionArticuloCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idAgrupacionArticuloLinea = -1;
            long lng_idAgrupacionArticuloLineaFoto = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idAgrupacionArticuloCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idAgrupacionArticuloLinea = -1;
                        lng_idAgrupacionArticuloLineaFoto = -1;
                        str_AUX = "";
                        #endregion

                        #region Cabecera

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesArticulosCabecera.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionArticuloCabecera = g_dct_ids_MAE_AgrupacionesArticulosCabecera[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionArticuloCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_IDEMPRESA,
                                                                                     lng_idEmpresa.ToString().Trim(),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionArticuloCabecera > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesArticulosCabecera.Add(str_AUX, lng_idAgrupacionArticuloCabecera);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionArticuloCabecera == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_IDEMPRESA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_CLIENTEPROVEEDOR + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_SINREPETICION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@idEmpresa," +
                                                        "@clienteProveedor," +
                                                        "@sinRepeticion" +
                                                    " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                new SqlParameter("@clienteProveedor", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                            ?   new SqlParameter("@sinRepeticion", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                            :   new SqlParameter("@sinRepeticion",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //si es correcto relleno el id de la cabecera para las lineas
                                else
                                {
                                    lng_idAgrupacionArticuloCabecera = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesArticulosCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }
                        #endregion

                        #region Lineas
                        //LINEAS ############################################################################################
                        //si el id de la cabecera existe
                        if (lng_idAgrupacionArticuloCabecera > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                      lng_idAgrupacionArticuloCabecera.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesArticulosLinea.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionArticuloLinea = g_dct_ids_MAE_AgrupacionesArticulosLinea[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionArticuloLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOCABECERA,
                                                                                    lng_idAgrupacionArticuloCabecera.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionArticuloLinea > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesArticulosLinea.Add(str_AUX, lng_idAgrupacionArticuloLinea);
                                }
                                
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionArticuloLinea == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOCABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idAgrupacionArticuloCabecera," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                new SqlParameter("@idAgrupacionArticuloCabecera", lng_idAgrupacionArticuloCabecera),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_CODIGO,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //Todo Correcto
                                else
                                {
                                    lng_idAgrupacionArticuloLinea = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                              lng_idAgrupacionArticuloCabecera.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesArticulosLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            
                        }
                        // ##################################################################################################
                        #endregion

                        #region Foto
                        //FOTO ############################################################################################
                        //si el id de la Linea existe
                        if (lng_idAgrupacionArticuloLinea > -1)
                        {
                            //si existe foto la agrego sino no
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = lng_idAgrupacionArticuloLinea.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_AgrupacionesArticulosLineaFoto.ContainsKey(str_AUX))
                                {
                                    lng_idAgrupacionArticuloLineaFoto = g_dct_ids_MAE_AgrupacionesArticulosLineaFoto[str_AUX];
                                }
                                else
                                {
                                    lng_idAgrupacionArticuloLineaFoto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_IDAGRUPACIONARTICULOLINEA,
                                                                                                                 lng_idAgrupacionArticuloLinea.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAgrupacionArticuloLineaFoto > -1)
                                    {
                                        g_dct_ids_MAE_AgrupacionesArticulosLineaFoto.Add(str_AUX, lng_idAgrupacionArticuloLineaFoto);
                                    }
                                    
                                }
                                

                                //Si no existe inserto el registro
                                if (lng_idAgrupacionArticuloLineaFoto == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS +
                                                                  " (" +
                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_IDAGRUPACIONARTICULOLINEA + "," +
                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_FOTO +
                                                                 " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                      "@idAgrupacionArticuloLinea," +
                                                                      "@foto" +
                                                                  " ) ";

                                    //Parametros
                                    SqlParameter obj_SqlParameter_imagen = new SqlParameter("@foto", SqlDbType.Binary);
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                    {
                                        byte[] arr_bytes_Foto = Encoding.ASCII.GetBytes(mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim());

                                        obj_SqlParameter_imagen.Value = arr_bytes_Foto;
                                    }
                                    else
                                    { obj_SqlParameter_imagen.Value = DBNull.Value; }

                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idAgrupacionArticuloLinea", lng_idAgrupacionArticuloLinea),
                                        obj_SqlParameter_imagen
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_IDAGRUPACIONARTICULOLINEA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idAgrupacionArticuloLinea.ToString().Trim();
                                        g_dct_ids_MAE_AgrupacionesArticulosLineaFoto.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        // ##################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionArticulos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_AgrupacionesClientes
        public INTERNO_ValorDevuelto_Modelo Insertar_AgrupacionClientes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idAgrupacionClienteCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idAgrupacionClienteLinea = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idAgrupacionClienteCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idAgrupacionClienteLinea = -1;
                        str_AUX = "";
                        #endregion

                        //inicializo la variable principal
                        lng_idAgrupacionClienteCabecera = -1;

                        #region Cabecera

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                      

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesClientesCabecera.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionClienteCabecera = g_dct_ids_MAE_AgrupacionesClientesCabecera[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionClienteCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS,
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_ID,
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_CODIGO,
                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_IDEMPRESA,
                                                                                   lng_idEmpresa.ToString().Trim(),
                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionClienteCabecera > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesClientesCabecera.Add(str_AUX, lng_idAgrupacionClienteCabecera);
                                }
                                
                            }
                           

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionClienteCabecera == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_IDEMPRESA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_SINREPETICION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@idEmpresa," +
                                                        "@sinRepeticion" +
                                                    " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                            ?   new SqlParameter("@sinRepeticion", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                            :   new SqlParameter("@sinRepeticion",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionClientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //si es correcto relleno el id de la cabecera para las lineas
                                else
                                {
                                    lng_idAgrupacionClienteCabecera = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesClientesCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionClientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }
                        #endregion

                        #region Lineas
                        //LINEAS ############################################################################################
                        //si el id de la cabecera existe
                        if (lng_idAgrupacionClienteCabecera > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                      lng_idAgrupacionClienteCabecera.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesClientesLinea.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionClienteLinea = g_dct_ids_MAE_AgrupacionesClientesLinea[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionClienteLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTECABECERA,
                                                                                    lng_idAgrupacionClienteCabecera.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionClienteLinea > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesClientesLinea.Add(str_AUX, lng_idAgrupacionClienteLinea);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionClienteLinea == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTECABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idAgrupacionClienteCabecera," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                new SqlParameter("@idAgrupacionClienteCabecera", lng_idAgrupacionClienteCabecera),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionClientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                             lng_idAgrupacionClienteCabecera.ToString().Trim() + "_" +
                                             lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesClientesLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            
                        }
                        // ##################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionClientes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionClientes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_AgrupacionesProveedores
        public INTERNO_ValorDevuelto_Modelo Insertar_AgrupacionProveedore(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idAgrupacionProveedorCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idAgrupacionProveedorLinea = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idAgrupacionProveedorCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idAgrupacionProveedorLinea = -1;
                        str_AUX = "";
                        #endregion

                        //inicializo la variable principal
                        lng_idAgrupacionProveedorCabecera = -1;

                        #region Cabecera
                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                           
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesProveedoresCabecera.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionProveedorCabecera = g_dct_ids_MAE_AgrupacionesProveedoresCabecera[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionProveedorCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionProveedorCabecera > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesProveedoresCabecera.Add(str_AUX, lng_idAgrupacionProveedorCabecera);
                                }
                                
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionProveedorCabecera == -1)
                            {


                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_IDEMPRESA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_SINREPETICION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@idEmpresa," +
                                                        "@sinRepeticion" +
                                                    " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                            ?   new SqlParameter("@sinRepeticion", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                            :   new SqlParameter("@sinRepeticion",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionProveedore),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //si es correcto relleno el id de la cabecera para las lineas
                                else
                                {
                                    lng_idAgrupacionProveedorCabecera = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesProveedoresCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionProveedore),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }
                        #endregion

                        #region Lineas
                        //LINEAS ############################################################################################
                        //si el id de la cabecera existe
                        if (lng_idAgrupacionProveedorCabecera > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                      lng_idAgrupacionProveedorCabecera.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_AgrupacionesProveedoresLinea.ContainsKey(str_AUX))
                            {
                                lng_idAgrupacionProveedorLinea = g_dct_ids_MAE_AgrupacionesProveedoresLinea[str_AUX];
                            }
                            else
                            {
                                lng_idAgrupacionProveedorLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_ID,
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_CODIGO,
                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORCABECERA,
                                                                                   lng_idAgrupacionProveedorCabecera.ToString().Trim(),
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDEMPRESA,
                                                                                   lng_idEmpresa.ToString().Trim(),
                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAgrupacionProveedorLinea > -1)
                                {
                                    g_dct_ids_MAE_AgrupacionesProveedoresLinea.Add(str_AUX, lng_idAgrupacionProveedorLinea);
                                }
                               
                            }
                           

                            //Si no existe inserto el registro
                            if (lng_idAgrupacionProveedorLinea == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORCABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idAgrupacionProveedorCabecera," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                new SqlParameter("@idAgrupacionProveedorCabecera", lng_idAgrupacionProveedorCabecera),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionProveedore),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                               lng_idAgrupacionProveedorCabecera.ToString().Trim() + "_" +
                                               lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_AgrupacionesProveedoresLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                           
                        }
                        // ##################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionProveedore), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AgrupacionProveedore), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Articulos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idArticulo = -1;
            long lng_idEmpresa = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idMedidaCompra = -1;
            long lng_idMedidaVenta = -1;
            long lng_idMayor_Compras = -1;
            long lng_idMayor_Ventas = -1;
            long lng_idTipoProducto = -1;
            long lng_idProveedor = -1;
            long lng_idDepartamento = -1;
            long lng_idNomenclaturaPrecio_Venta_PorDefecto = -1;
            long lng_idNomenclaturaPrecio_Compra_PorDefecto = -1;
            long lng_idArticuloTotalizado = -1;
            long lng_idRetencionTipo_Venta = -1;
            long lng_idRetencionTipo_Compra = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticulo = -1;
                        lng_idEmpresa = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idMedidaCompra = -1;
                        lng_idMedidaVenta = -1;
                        lng_idMayor_Compras = -1;
                        lng_idMayor_Ventas = -1;
                        lng_idTipoProducto = -1;
                        lng_idProveedor = -1;
                        lng_idDepartamento = -1;
                        lng_idNomenclaturaPrecio_Venta_PorDefecto = -1;
                        lng_idNomenclaturaPrecio_Compra_PorDefecto = -1;
                        lng_idArticuloTotalizado = -1;
                        lng_idRetencionTipo_Venta = -1;
                        lng_idRetencionTipo_Compra = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                           
                        }
                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {


                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                             lng_idEmpresa.ToString().Trim(),
                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                               
                            }
                           

                            //Si no existe inserto el registro
                            if (lng_idArticulo == -1)
                            {
                                //Si contiene algo busco el idMedidaCompra
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Medidas.ContainsKey(str_AUX))
                                    {
                                        lng_idMedidaCompra = g_dct_ids_MAE_Medidas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMedidaCompra = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMedidaCompra > -1)
                                        {
                                            g_dct_ids_MAE_Medidas.Add(str_AUX, lng_idMedidaCompra);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMedidaCompra == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMEDIDACOMPRA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMedidaVenta
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Medidas.ContainsKey(str_AUX))
                                    {
                                        lng_idMedidaVenta = g_dct_ids_MAE_Medidas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMedidaVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMedidaVenta > -1)
                                        {
                                            g_dct_ids_MAE_Medidas.Add(str_AUX, lng_idMedidaVenta);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMedidaVenta == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMEDIDAVENTA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Compras
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Compras = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Compras > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Compras);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Compras == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMAYOR_COMPRAS),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Ventas
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Ventas = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Ventas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Ventas > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Ventas);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Ventas == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMAYOR_VENTAS),
                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idTipoProducto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_TiposProductos.ContainsKey(str_AUX))
                                    {
                                        lng_idTipoProducto = g_dct_ids_MAE_TiposProductos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTipoProducto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_ID,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO,
                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTipoProducto > -1)
                                        {
                                            g_dct_ids_MAE_TiposProductos.Add(str_AUX, lng_idTipoProducto);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idTipoProducto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDTIPOPRODUCTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idProveedor
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                    {
                                        lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProveedor > -1)
                                        {
                                            g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                        }
                                        
                                    }
                                   
                                    //Si no existe muestro error
                                    if (lng_idProveedor == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDPROVEEDOR),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idDepartamento
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                    {
                                        lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDepartamento > -1)
                                        {
                                            g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idDepartamento == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDDEPARTAMENTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idNomenclaturaPrecio_Compra_ProDefecto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio_Compra_PorDefecto = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio_Compra_PorDefecto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio_Compra_PorDefecto > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Compra_PorDefecto);
                                        }
                                     
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idNomenclaturaPrecio_Compra_PorDefecto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDNOMENCLATURAPRECIO_COMPRA_PORDEFECTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idNomenclaturaPrecio_Venta_ProDefecto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio_Venta_PorDefecto = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio_Venta_PorDefecto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio_Venta_PorDefecto > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Venta_PorDefecto);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idNomenclaturaPrecio_Venta_PorDefecto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDNOMENCLATURAPRECIO_VENTA_PORDEFECTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idImpuestoTipo
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idImpuestoTipo > -1)
                                        {
                                            g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idImpuestoTipo == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDIMPUESTOTIPO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idArticuloTotalizado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_ArticulosTotalizados.ContainsKey(str_AUX))
                                    {
                                        lng_idArticuloTotalizado = g_dct_ids_MAE_ArticulosTotalizados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticuloTotalizado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticuloTotalizado > -1)
                                        {
                                            g_dct_ids_MAE_ArticulosTotalizados.Add(str_AUX, lng_idArticuloTotalizado);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idArticuloTotalizado == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDARTICULOTOTALIZADO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idRetencionTipo_Venta
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_32!= null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idRetencionTipo_Venta = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRetencionTipo_Venta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRetencionTipo_Venta > -1)
                                        {
                                            g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo_Venta);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idRetencionTipo_Venta == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDRETENCIONTIPO_VENTA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idRetencionTipo_Compra
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idRetencionTipo_Compra = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRetencionTipo_Compra = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRetencionTipo_Compra > -1)
                                        {
                                            g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo_Compra);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idRetencionTipo_Compra == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDRETENCIONTIPO_COMPRA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idImpuestoTipo > -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS +
                                                            " (" +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_DESCRIPCION + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_DESCRIPCIONCORTA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_TIPOPRECIO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMEDIDACOMPRA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMEDIDAVENTA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMAYOR_COMPRAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDMAYOR_VENTAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDTIPOPRODUCTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDPROVEEDOR + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDDEPARTAMENTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO_EAN + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ESMATERIAPRIMA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_PERMITIRVENTA_BAJOCOSTE + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ESDELOTEPRODUCTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_OBSERVACIONES + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_FECHAALTA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_FECHABAJA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_DESCRIPCIONAMPLIADA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDNOMENCLATURAPRECIO_VENTA_PORDEFECTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDNOMENCLATURAPRECIO_COMPRA_PORDEFECTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_PORCENTAJECANCELACION_COMPRAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_PORCENTAJECANCELACION_VENTAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_TIPOTRAZABILIDAD_ENTRADAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_TIPOTRAZABILIDAD_SALIDAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ESMANODEOBRA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ESDESPLAZAMIENTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDARTICULOTOTALIZADO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDRETENCIONTIPO_VENTA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDRETENCIONTIPO_COMPRA + 
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                  "@codigo," +
                                                                  "@descripcion," +
                                                                  "@descripcionCorta," +
                                                                  "@tipoPrecio," +
                                                                  "@idImpuestoTipo," +
                                                                  "@idEmpresa," +
                                                                  "@idMedidaCompra," +
                                                                  "@idMedidaVenta," +
                                                                  "@idMayor_Compras," +
                                                                  "@idMayor_Ventas," +
                                                                  "@idTipoProducto," +
                                                                  "@idProveedor," +
                                                                  "@idDepartamento," +
                                                                  "@codigo_EAN," +
                                                                  "@esMateriaPrima," +
                                                                  "@permitirVenta_BajoCoste," +
                                                                  "@esDeLoteProducto," +
                                                                  "@observaciones," +
                                                                  "@fechaAlta," +
                                                                  "@fechaBaja," +
                                                                  "@descripcionAmpliada," +
                                                                  "@idNomenclaturaPrecio_Venta_PorDefecto," +
                                                                  "@idNomenclaturaPrecio_Compra_PorDefecto," +
                                                                  "@porcentajeCancelacion_Compras," +
                                                                  "@porcentajeCancelacion_Ventas," +
                                                                  "@tipoTrazabilidad_Entradas," +
                                                                  "@tipoTrazabilidad_Salidas," +
                                                                  "@esManoDeObra," +
                                                                  "@esDesplazamiento," +
                                                                  "@idArticuloTotalizado," +
                                                                  "@idRetencionTipo_Venta," +
                                                                  "@idRetencionTipo_Compra" +
                                                            " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                        ?   new SqlParameter("@descripcionCorta", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@descripcionCorta",  DBNull.Value),
                                        new SqlParameter("@tipoPrecio", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                        new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        lng_idMedidaCompra > -1
                                        ?   new SqlParameter("@idMedidaCompra", lng_idMedidaCompra)
                                        :   new SqlParameter("@idMedidaCompra",  DBNull.Value),
                                        lng_idMedidaVenta > -1
                                        ?   new SqlParameter("@idMedidaVenta", lng_idMedidaVenta)
                                        :   new SqlParameter("@idMedidaVenta",  DBNull.Value),
                                        lng_idMayor_Compras > -1
                                        ?   new SqlParameter("@idMayor_Compras", lng_idMayor_Compras)
                                        :   new SqlParameter("@idMayor_Compras",  DBNull.Value),
                                        lng_idMayor_Ventas > -1
                                        ?   new SqlParameter("@idMayor_Ventas", lng_idMayor_Ventas)
                                        :   new SqlParameter("@idMayor_Ventas",  DBNull.Value),
                                        lng_idTipoProducto > -1
                                        ?   new SqlParameter("@idTipoProducto", lng_idTipoProducto)
                                        :   new SqlParameter("@idTipoProducto",  DBNull.Value),
                                        lng_idProveedor > -1
                                        ?   new SqlParameter("@idProveedor", lng_idProveedor)
                                        :   new SqlParameter("@idProveedor",  DBNull.Value),
                                        lng_idDepartamento > -1
                                        ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                        :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                        ?   new SqlParameter("@codigo_EAN", mdl_INTERNO_Tabla_Modelo.Objeto_14)
                                        :   new SqlParameter("@codigo_EAN",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                        ?   new SqlParameter("@esMateriaPrima", mdl_INTERNO_Tabla_Modelo.Objeto_15)
                                        :   new SqlParameter("@esMateriaPrima",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                        ?   new SqlParameter("@permitirVenta_BajoCoste", mdl_INTERNO_Tabla_Modelo.Objeto_16)
                                        :   new SqlParameter("@permitirVenta_BajoCoste",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                        ?   new SqlParameter("@esDeLoteProducto", mdl_INTERNO_Tabla_Modelo.Objeto_17)
                                        :   new SqlParameter("@esDeLoteProducto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_18)
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                        new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_19),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                        ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_20)
                                        :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                        ?   new SqlParameter("@descripcionAmpliada", mdl_INTERNO_Tabla_Modelo.Objeto_21)
                                        :   new SqlParameter("@descripcionAmpliada",  DBNull.Value),
                                        lng_idNomenclaturaPrecio_Venta_PorDefecto> -1
                                        ?   new SqlParameter("@idNomenclaturaPrecio_Venta_PorDefecto", lng_idNomenclaturaPrecio_Venta_PorDefecto)
                                        :   new SqlParameter("@idNomenclaturaPrecio_Venta_PorDefecto",  DBNull.Value),
                                        lng_idNomenclaturaPrecio_Compra_PorDefecto > -1
                                        ?   new SqlParameter("@idNomenclaturaPrecio_Compra_PorDefecto", lng_idNomenclaturaPrecio_Compra_PorDefecto)
                                        :   new SqlParameter("@idNomenclaturaPrecio_Compra_PorDefecto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                        ?   new SqlParameter("@porcentajeCancelacion_Compras", mdl_INTERNO_Tabla_Modelo.Objeto_24)
                                        :   new SqlParameter("@porcentajeCancelacion_Compras",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                        ?   new SqlParameter("@porcentajeCancelacion_Ventas", mdl_INTERNO_Tabla_Modelo.Objeto_25)
                                        :   new SqlParameter("@porcentajeCancelacion_Ventas",  DBNull.Value),
                                        new SqlParameter("@tipoTrazabilidad_Entradas", mdl_INTERNO_Tabla_Modelo.Objeto_26),
                                        new SqlParameter("@tipoTrazabilidad_Salidas", mdl_INTERNO_Tabla_Modelo.Objeto_27),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_28 != null
                                        ?   new SqlParameter("@esManoDeObra", mdl_INTERNO_Tabla_Modelo.Objeto_28)
                                        :   new SqlParameter("@esManoDeObra",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                        ?   new SqlParameter("@esDesplazamiento", mdl_INTERNO_Tabla_Modelo.Objeto_29)
                                        :   new SqlParameter("@esDesplazamiento",  DBNull.Value),
                                        lng_idArticuloTotalizado> -1
                                        ?   new SqlParameter("@idArticuloTotalizado", lng_idArticuloTotalizado)
                                        :   new SqlParameter("@idArticuloTotalizado",  DBNull.Value),
                                        lng_idRetencionTipo_Venta> -1
                                        ?   new SqlParameter("@idRetencionTipo_Venta", lng_idRetencionTipo_Venta)
                                        :   new SqlParameter("@idRetencionTipo_Venta",  DBNull.Value),
                                        lng_idRetencionTipo_Compra> -1
                                        ?   new SqlParameter("@idRetencionTipo_Compra", lng_idRetencionTipo_Compra)
                                        :   new SqlParameter("@idRetencionTipo_Compra",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        g_dct_ids_MAE_Articulos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDIMPUESTOTIPO),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos_AgrupacionesArticulosLineas
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Articulos_AgrupacionesArticulosLineas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idArticulo_AgrupacionArticuloLinea = -1;
            long lng_idArticulo = -1;
            long lng_idAgrupacionArticuloLinea = -1;
            long lng_idAgrupacionArticuloCabecera = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticulo_AgrupacionArticuloLinea = -1;
                        lng_idArticulo = -1;
                        lng_idAgrupacionArticuloLinea = -1;
                        lng_idAgrupacionArticuloCabecera = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                  lng_idEmpresa.ToString(),
                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                            
                            }
                        

                            //Si no existe inserto el registro
                            if (lng_idArticulo > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_AgrupacionesArticulosCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idAgrupacionArticuloCabecera = g_dct_ids_MAE_AgrupacionesArticulosCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idAgrupacionArticuloCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSCABECERAS_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAgrupacionArticuloCabecera > -1)
                                    {
                                        g_dct_ids_MAE_AgrupacionesArticulosCabecera.Add(str_AUX, lng_idAgrupacionArticuloCabecera);
                                    }
                                   
                                }
                                

                                //si existe el registro continuo
                                if (lng_idAgrupacionArticuloCabecera > -1)
                                {

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idAgrupacionArticuloCabecera.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_AgrupacionesArticulosLinea.ContainsKey(str_AUX))
                                    {
                                        lng_idAgrupacionArticuloLinea = g_dct_ids_MAE_AgrupacionesArticulosLinea[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAgrupacionArticuloLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOCABECERA,
                                                                                         lng_idAgrupacionArticuloCabecera.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDEMPRESA,
                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAgrupacionArticuloLinea > -1)
                                        {
                                            g_dct_ids_MAE_AgrupacionesArticulosLinea.Add(str_AUX, lng_idAgrupacionArticuloLinea);
                                        }
                                        
                                    }
                                   

                                    //Si no existe inserto el registro
                                    if (lng_idAgrupacionArticuloLinea > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                  lng_idAgrupacionArticuloLinea.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo_AgrupacionArticuloLinea = g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo_AgrupacionArticuloLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                            lng_idArticulo.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOLINEA,
                                                                                                                            lng_idAgrupacionArticuloLinea.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo_AgrupacionArticuloLinea > -1)
                                            {
                                                g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea.Add(str_AUX, lng_idArticulo_AgrupacionArticuloLinea);
                                            }
                                            
                                        }
                                        

                                        //Si no existe inserto el registro
                                        if (lng_idArticulo_AgrupacionArticuloLinea == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDARTICULO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOLINEA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_OBSERVACIONES +
                                                                " ) " +
                                                                " OUTPUT INSERTED.idArticulo " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@idArticulo," +
                                                                    "@idAgrupacionArticuloLinea," +
                                                                    "@Observaciones" +
                                                                " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idArticulo", lng_idArticulo),
                                                new SqlParameter("@idAgrupacionArticuloLinea", lng_idAgrupacionArticuloLinea),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                                    ?   new SqlParameter("@Observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                                    :   new SqlParameter("@Observaciones",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            else
                                            {
                                                //Añadir al Diccionario
                                                str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                           lng_idAgrupacionArticuloLinea.ToString().Trim();
                                                g_dct_ids_MAE_ArticulosAgrupacionesArticulosLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOLINEA,
                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEASFOTOS_CAMPO_IDAGRUPACIONARTICULOLINEA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDAGRUPACIONARTICULOCABECERA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDARTICULO),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                               "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESARTICULOSLINEAS_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);

                           
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos_CodigosBarras
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_ArticulosCodigosBarras(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idArticuloCodigoBarra = -1;
            long lng_idArticulo = -1;
            long lng_idEmpresa = -1;
            long lng_idEmbalaje = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticuloCodigoBarra = -1;
                        lng_idArticulo = -1;
                        lng_idEmpresa = -1;
                        lng_idEmbalaje = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }


                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                  lng_idEmpresa.ToString(),
                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                           
                            }
                        

                            //Si no existe inserto el registro
                            if (lng_idArticulo > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                {
                                    lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                }
                                else
                                {
                                    lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmbalaje > -1)
                                    {
                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                    }
                                  
                                }
                                

                                //si existe el registro continuo
                                if (lng_idEmbalaje > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idArticulo.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              lng_idEmbalaje.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_ArticulosCodigosBarras.ContainsKey(str_AUX))
                                    {
                                        lng_idArticuloCodigoBarra = g_dct_ids_MAE_ArticulosCodigosBarras[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticuloCodigoBarra = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDARTICULO,
                                                                                                            lng_idArticulo.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMBALAJE,
                                                                                                            lng_idEmbalaje.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticuloCodigoBarra > -1)
                                        {
                                            g_dct_ids_MAE_ArticulosCodigosBarras.Add(str_AUX, lng_idArticuloCodigoBarra);
                                        }
                                       
                                    }
                                   

                                    //Si no existe inserto el registro
                                    if (lng_idArticuloCodigoBarra == -1)
                                    {
                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS +
                                                                    " (" +
                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_CODIGO + "," +
                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDARTICULO + "," +
                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMPRESA + "," +
                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMBALAJE +
                                                                    " ) " +
                                                                    " OUTPUT INSERTED.id " +
                                                                    " VALUES " +
                                                                    " ( " +
                                                                         "@codigo," +
                                                                         "@idArticulo," +
                                                                         "@idEmpresa," +
                                                                         "@idEmbalaje" +
                                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                            new SqlParameter("@idArticulo", lng_idArticulo),
                                            new SqlParameter("@idEmpresa", lng_idEmpresa),
                                            new SqlParameter("@idEmbalaje", lng_idEmbalaje)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDARTICULO,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS,
                                                                                                                                       mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosCodigosBarras),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        else
                                        {
                                            //Añadir al Diccionario
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                          lng_idArticulo.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          lng_idEmbalaje.ToString().Trim();
                                            g_dct_ids_MAE_ArticulosCodigosBarras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_CODIGO,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosCodigosBarras),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMBALAJE),
                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDARTICULO),
                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCODIGOSBARRAS_CAMPO_IDEMPRESA),
                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_AgrupacionesArticulosLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosCodigosBarras), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosCodigosBarras), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_ArticulosComodin
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_ArticulosComodin(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_id = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idNomenclaturaPrecio_Venta_PorDefecto = -1;
            long lng_idNomenclaturaPrecio_Compra_PorDefecto = -1;
            long lng_idEmpresa = -1;
            long lng_idRetencionTipo_Venta = -1;
            long lng_idRetencionTipo_Compra = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_id = -1;
                        lng_idEmpresa = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idNomenclaturaPrecio_Venta_PorDefecto = -1;
                        lng_idNomenclaturaPrecio_Compra_PorDefecto = -1;
                        lng_idRetencionTipo_Venta = -1;
                        lng_idRetencionTipo_Compra = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }


                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {


                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_ArticulosComodin.ContainsKey(str_AUX))
                            {
                                lng_id = g_dct_ids_MAE_ArticulosComodin[str_AUX];
                            }
                            else
                            {
                                lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_ID,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA,
                                                                             lng_idEmpresa.ToString().Trim(),
                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_id > -1)
                                {
                                    g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, lng_id);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_id == -1)
                            {
                                //Si contiene algo busco el idNomenclaturaPrecio_Compra_ProDefecto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio_Compra_PorDefecto = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio_Compra_PorDefecto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio_Compra_PorDefecto > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Compra_PorDefecto);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idNomenclaturaPrecio_Compra_PorDefecto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDNOMENCLATURAPRECIO_COMPRA_PORDEFECTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idNomenclaturaPrecio_Venta_ProDefecto
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                    {
                                        lng_idNomenclaturaPrecio_Venta_PorDefecto = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idNomenclaturaPrecio_Venta_PorDefecto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idNomenclaturaPrecio_Venta_PorDefecto > -1)
                                        {
                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Venta_PorDefecto);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idNomenclaturaPrecio_Venta_PorDefecto == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDNOMENCLATURAPRECIO_VENTA_PORDEFECTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idImpuestoTipo
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idImpuestoTipo > -1)
                                        {
                                            g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idImpuestoTipo == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDIMPUESTOTIPO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idRetencionTipo_Venta
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idRetencionTipo_Venta = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRetencionTipo_Venta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRetencionTipo_Venta > -1)
                                        {
                                            g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo_Venta);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idRetencionTipo_Venta == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDRETENCIONTIPO_VENTA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idRetencionTipo_Compra
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                    {
                                        lng_idRetencionTipo_Compra = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRetencionTipo_Compra = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRetencionTipo_Compra > -1)
                                        {
                                            g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo_Compra);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idRetencionTipo_Compra == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDRETENCIONTIPO_COMPRA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idImpuestoTipo > -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN +
                                                            " (" +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_DESCRIPCION + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDNOMENCLATURAPRECIO_VENTA_PORDEFECTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDNOMENCLATURAPRECIO_COMPRA_PORDEFECTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDRETENCIONTIPO_VENTA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDRETENCIONTIPO_COMPRA +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                  "@codigo," +
                                                                  "@descripcion," +
                                                                  "@idImpuestoTipo," +
                                                                  "@idNomenclaturaPrecio_Venta_PorDefecto," +
                                                                  "@idNomenclaturaPrecio_Compra_PorDefecto," +
                                                                  "@idEmpresa," +
                                                                  "@idRetencionTipo_Venta," +
                                                                  "@idRetencionTipo_Compra" +
                                                            " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo),
                                        new SqlParameter("@idNomenclaturaPrecio_Venta_PorDefecto", lng_idNomenclaturaPrecio_Venta_PorDefecto),
                                        new SqlParameter("@idNomenclaturaPrecio_Compra_PorDefecto", lng_idNomenclaturaPrecio_Compra_PorDefecto),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        lng_idRetencionTipo_Venta> -1
                                        ?   new SqlParameter("@idRetencionTipo_Venta", lng_idRetencionTipo_Venta)
                                        :   new SqlParameter("@idRetencionTipo_Venta",  DBNull.Value),
                                        lng_idRetencionTipo_Compra> -1
                                        ?   new SqlParameter("@idRetencionTipo_Compra", lng_idRetencionTipo_Compra)
                                        :   new SqlParameter("@idRetencionTipo_Compra",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDIMPUESTOTIPO),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosComodin), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos_Embalajes
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Articulos_Embalajes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idArticulo_Embalaje = -1;
            long lng_idArticulo = -1;
            long lng_idEmpresa_Articulo = -1;
            long lng_idEmbalajePrincipal = -1;
            long lng_idEmbalajeRelacional = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticulo_Embalaje = -1;
                        lng_idArticulo = -1;
                        lng_idEmpresa_Articulo = -1;
                        lng_idEmbalajePrincipal = -1;
                        lng_idEmbalajeRelacional = -1;
                        str_AUX = "";
                        #endregion

                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "");

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa_Articulo = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa_Articulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                    str_AUX,
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa_Articulo > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_Articulo);
                            }
                                
                        }
                           
                        //si existe continuo
                        if (lng_idEmpresa_Articulo > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                        lng_idEmpresa_Articulo.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                            lng_idEmpresa_Articulo.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                                   
                            }
                                

                            //Si existe continuo
                            if (lng_idArticulo > -1)
                            {

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                {
                                    lng_idEmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                }
                                else
                                {
                                    lng_idEmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmbalajePrincipal > -1)
                                    {
                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalajePrincipal);
                                    }
                                       
                                }
                                   
                                //Si no existe inserto
                                if (lng_idEmbalajePrincipal > -1)
                                {
                                    //Si contiene algo busco el idEmbalajeRelacional
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_idEmbalajeRelacional = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmbalajeRelacional = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmbalajeRelacional > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalajeRelacional);
                                            }
                                               
                                        }
                                           
                                        //Si no existe muestro error
                                        if (lng_idEmbalajeRelacional == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJERELACIONAL),
                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                lng_idEmbalajePrincipal.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_ArticulosEmbalajes.ContainsKey(str_AUX))
                                    {
                                        lng_idArticulo_Embalaje = g_dct_ids_MAE_ArticulosEmbalajes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticulo_Embalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO,
                                                                                                            lng_idArticulo.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJEPRINCIPAL,
                                                                                                            lng_idEmbalajePrincipal.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticulo_Embalaje > -1)
                                        {
                                            g_dct_ids_MAE_ArticulosEmbalajes.Add(str_AUX, lng_idArticulo_Embalaje);
                                        }
                                           
                                    }
                                       

                                    //Si existe continuo
                                    if (lng_idArticulo_Embalaje == -1)
                                    {
                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES +
                                                            " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJEPRINCIPAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_CANTIDADEMBALAJEPRINCIPAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJERELACIONAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_CANTIDADEMBALAJERELACIONAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_ESPRINCIPAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_DESCRIPCION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_OPERACION +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                    "@idArticulo," +
                                                                    "@idEmbalajePrincipal," +
                                                                    "@cantidadEmbalajePrincipal," +
                                                                    "@idEmbalajeRelacional," +
                                                                    "@cantidadEmbalajeRelacional," +
                                                                    "@esPrincipal," +
                                                                    "@precio_Cantidad_SegundaUnidad," +
                                                                    "@descripcion," +
                                                                    "@operacion" +
                                                            " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idArticulo", lng_idArticulo),
                                            new SqlParameter("@idEmbalajePrincipal", lng_idEmbalajePrincipal),
                                            new SqlParameter("@cantidadEmbalajePrincipal", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                            lng_idEmbalajeRelacional > -1
                                                ?   new SqlParameter("@idEmbalajeRelacional", lng_idEmbalajeRelacional)
                                                :   new SqlParameter("@idEmbalajeRelacional",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                ?   new SqlParameter("@cantidadEmbalajeRelacional", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                                :   new SqlParameter("@cantidadEmbalajeRelacional",  DBNull.Value),
                                            new SqlParameter("@esPrincipal", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                ?   new SqlParameter("@precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                                :   new SqlParameter("@precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                ?   new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                                :   new SqlParameter("@descripcion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                                ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_9)
                                                :   new SqlParameter("@operacion",  DBNull.Value)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        else
                                        {
                                            //Añadir al Diccionario
                                            str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                        lng_idEmbalajePrincipal.ToString().Trim();
                                            g_dct_ids_MAE_ArticulosEmbalajes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO,
                                                                                                                        lng_idArticulo_Embalaje.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJEPRINCIPAL),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos_EmbalajesPrincipal
        public INTERNO_ValorDevuelto_Modelo Insertar_ArticulosEmbalajePrincipal(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;


            long lng_idArticulo_EmbalajePrncipal_Precio = -1;
            long lng_idArticulo = -1;
            long lng_idEmpresa_Articulo = -1;
            long lng_idArticulo_Embalaje = -1;
            long lng_idEmbalaje = -1;
            long lng_idNomenclaturaPrecio = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticulo_EmbalajePrncipal_Precio = -1;
                        lng_idArticulo = -1;
                        lng_idEmpresa_Articulo = -1;
                        lng_idArticulo_Embalaje = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa_Articulo = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa_Articulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                    str_AUX,
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idArticulo_Embalaje > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_Articulo);
                            }
                               
                        }
                           
                        //si existe continuo
                        if (lng_idEmpresa_Articulo > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                        lng_idEmpresa_Articulo.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                            lng_idEmpresa_Articulo.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                                    
                            }
                                

                            //Si existe continuo
                            if (lng_idArticulo > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                {
                                    lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                }
                                else
                                {
                                    lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEmbalaje > -1)
                                    {
                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                    }
                                       
                                }
                                    

                                //Si existe continuo
                                if (lng_idEmbalaje > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                lng_idEmbalaje.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_ArticulosEmbalajes.ContainsKey(str_AUX))
                                    {
                                        lng_idArticulo_Embalaje = g_dct_ids_MAE_ArticulosEmbalajes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idArticulo_Embalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDARTICULO,
                                                                                                            lng_idArticulo.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJES_CAMPO_IDEMBALAJEPRINCIPAL,
                                                                                                            lng_idEmbalaje.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idArticulo_Embalaje > -1)
                                        {
                                            g_dct_ids_MAE_ArticulosEmbalajes.Add(str_AUX, lng_idArticulo_Embalaje);
                                        }
                                            
                                    }
                                        

                                    //Si existe continuo
                                    if (lng_idArticulo_Embalaje > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }
                                                
                                        }
                                            

                                        //Si existe continuo
                                        if (lng_idNomenclaturaPrecio > -1)
                                        {

                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = lng_idArticulo_Embalaje.ToString().Trim() + "_" +
                                                        lng_idNomenclaturaPrecio.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios.ContainsKey(str_AUX))
                                            {
                                                lng_idArticulo_EmbalajePrncipal_Precio = g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idArticulo_EmbalajePrncipal_Precio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE,
                                                                                                                                    lng_idArticulo_Embalaje.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDNOMENCLATURAPRECIO,
                                                                                                                                    lng_idNomenclaturaPrecio.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idArticulo_EmbalajePrncipal_Precio > -1)
                                                {
                                                    g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios.Add(str_AUX, lng_idArticulo_EmbalajePrncipal_Precio);
                                                }
                                                    
                                            }
                                               

                                            //Si no existe inserto
                                            if (lng_idArticulo_EmbalajePrncipal_Precio == -1)
                                            {
                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS +
                                                                " (" +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_PRECIO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_CUANDO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_PREGUNTAR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_TIPO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                        "@idArticulo_Emablaje," +
                                                                        "@idNomenclaturaPrecio," +
                                                                        "@precio," +
                                                                        "@actualizarPreciosCompras_Cuando," +
                                                                        "@actualizarPreciosCompras_Preguntar," +
                                                                        "@actualizarPreciosCompras_Tipo" +
                                                                " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idArticulo_Emablaje", lng_idArticulo_Embalaje),
                                                        new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                        new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                            ?   new SqlParameter("@actualizarPreciosCompras_Cuando", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                                            :   new SqlParameter("@actualizarPreciosCompras_Cuando",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                                            ?   new SqlParameter("@actualizarPreciosCompras_Preguntar", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                                            :   new SqlParameter("@actualizarPreciosCompras_Preguntar",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                            ?   new SqlParameter("@actualizarPreciosCompras_Tipo", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                                            :   new SqlParameter("@actualizarPreciosCompras_Tipo",  DBNull.Value),
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idArticulo_Embalaje.ToString().Trim() + "_" +
                                                                lng_idNomenclaturaPrecio.ToString().Trim();
                                                    g_dct_ids_MAE_ArticulosEmbalajesPrincipalPrecios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDEMBALAJE),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_EMBALAJESPRINCIPAL_PRECIOS_CAMPO_IDARTICULO_EMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }
                        

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_ArticulosEmbalajePrincipal), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_ArticulosTotalizados
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_ArticulosTotalizados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {

                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_DESCRIPCION + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosTotalizados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_ArticulosTotalizados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSTOTALIZADOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosTotalizados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosTotalizados), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_ArticulosTotalizados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Articulos_Trazabilidad
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Articulos_Trazabilidad(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idArticulo_Trazabilidad = -1;
            long lng_idArticulo = -1;
            long lng_idEmpresa_Articulo = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idArticulo_Trazabilidad = -1;
                        lng_idArticulo = -1;
                        lng_idEmpresa_Articulo = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa_Articulo = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa_Articulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa_Articulo > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_Articulo);
                            }
                                
                        }
                            
                        //si existe continuo
                        if (lng_idEmpresa_Articulo > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                        lng_idEmpresa_Articulo.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                            {
                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                            }
                            else
                            {
                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                            lng_idEmpresa_Articulo.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idArticulo > -1)
                                {
                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                }
                                    
                            }
                               

                            //Si no existe inserto el registro
                            if (lng_idArticulo > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                            lng_idArticulo.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Articulos_Trazabilidad.ContainsKey(str_AUX))
                                {
                                    lng_idArticulo_Trazabilidad = g_dct_ids_MAE_Articulos_Trazabilidad[str_AUX];
                                }
                                else
                                {
                                    lng_idArticulo_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO,
                                                                                    lng_idArticulo.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idArticulo_Trazabilidad > -1)
                                    {
                                        g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, lng_idArticulo_Trazabilidad);
                                    }
                                        
                                }
                                    

                                //Si no existe inserto el registro
                                if (lng_idArticulo_Trazabilidad == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD +
                                                                " (" +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_FECHACADUCIDAD + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_OBSERVACIONES + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_TIENESTOCK +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                        "@lote," +
                                                                        "@fechaCaducidad," +
                                                                        "@observaciones," +
                                                                        "@idArticulo," +
                                                                        "@tieneStock" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@lote", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_2 != null
                                                ?   new SqlParameter("@fechaCaducidad", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                                                :   new SqlParameter("@fechaCaducidad",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                        new SqlParameter("@idArticulo", lng_idArticulo),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                                ?   new SqlParameter("@tieneStock", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                                :   new SqlParameter("@tieneStock",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Trazabilidad),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                    lng_idArticulo.ToString().Trim();
                                        g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Trazabilidad),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Embalajes),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Trazabilidad),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }
                        


                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Trazabilidad), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Articulos_Trazabilidad), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Cargos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Cargos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_CODIGO,
                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Cargos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_Cargos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Cargos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                           str_Fila,
                                                                                                           "",
                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Cargos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Cargos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_CategoriasProfesionales
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_CategoriasProfesionales(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CategoriasProfesionales),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_CategoriasProfesionales.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CATEGORIASPROFESIONALES),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CategoriasProfesionales),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CategoriasProfesionales),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CategoriasProfesionales), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Clientes
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Clientes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idCliente = -1;
            long lng_idEmpresa = -1;
            long lng_idFormaPago = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idVendedor = -1;
            long lng_idMayor_CuentaContable = -1;
            long lng_idMayor_CuentaContraPartida = -1;
            long lng_idMayor_CuentaRetencion = -1;
            long lng_idMayor_CuentaRemesa = -1;
            long lng_idMayorAuxilar = -1;
            long lng_idDelegacion = -1;
            long lng_idMoneda = -1;
            long lng_idMotivoAltaBaja_Alta = -1;
            long lng_idMotivoAltaBaja_Baja = -1;
            long lng_idDepartamento = -1;
            long lng_idTesoreria = -1;
            long lng_idVendedor_Cobrador = -1;
            long lng_idAbonoTipo = -1;
            long lng_idPredefinidoCabecera_Venta = -1;
            long lng_idPredefinidoCabecera_Cobro = -1;
            long lng_idPrioridad = -1;
            long lng_idCliente_Cadena = -1;
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            long lng_idPais_FACTURACION = -1;
            long lng_idProvincia_FACTURACION = -1;
            long lng_idMunicipio_FACTURACION = -1;
            long lng_idPoblacion_FACTURACION = -1;
            long lng_idPais_FISCAL = -1;
            long lng_idProvincia_FISCAL = -1;
            long lng_idMunicipio_FISCAL = -1;
            long lng_idPoblacion_FISCAL = -1;
            long lng_idTipoVia_FISCAL = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idCliente = -1;
                        lng_idCliente = -1;
                        lng_idEmpresa = -1;
                        lng_idFormaPago = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idVendedor = -1;
                        lng_idMayor_CuentaContable = -1;
                        lng_idMayor_CuentaContraPartida = -1;
                        lng_idMayor_CuentaRetencion = -1;
                        lng_idMayor_CuentaRemesa = -1;
                        lng_idMayorAuxilar = -1;
                        lng_idDelegacion = -1;
                        lng_idMoneda = -1;
                        lng_idMotivoAltaBaja_Alta = -1;
                        lng_idMotivoAltaBaja_Baja = -1;
                        lng_idDepartamento = -1;
                        lng_idTesoreria = -1;
                        lng_idVendedor_Cobrador = -1;
                        lng_idAbonoTipo = -1;
                        lng_idPredefinidoCabecera_Venta = -1;
                        lng_idPredefinidoCabecera_Cobro = -1;
                        lng_idPrioridad = -1;
                        lng_idCliente_Cadena = -1;
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        lng_idPais_FACTURACION = -1;
                        lng_idProvincia_FACTURACION = -1;
                        lng_idMunicipio_FACTURACION = -1;
                        lng_idPoblacion_FACTURACION = -1;
                        lng_idPais_FISCAL = -1;
                        lng_idProvincia_FISCAL = -1;
                        lng_idMunicipio_FISCAL = -1;
                        lng_idPoblacion_FISCAL = -1;
                        lng_idTipoVia_FISCAL = -1;
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() : "";
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_19!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() : ""),
                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                           
                        }


                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "";
                            //......................................................................................
                            if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                            {
                                lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                            }
                            else
                            {
                                lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idFormaPago > -1)
                                {
                                    g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                }
                               
                            }



                            //si existe el registro continuo
                            if (lng_idFormaPago > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "";
                                //......................................................................................
                                if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idImpuestoCabecera > -1)
                                    {
                                        g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                    }
                                   
                                }


                                //si existe el registro continuo
                                if (lng_idImpuestoCabecera > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim().Trim() : "";
                                    //......................................................................................
                                    if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                    {
                                        lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMoneda > -1)
                                        {
                                            g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                        }
                                        
                                    }


                                    //si existe el registro continuo
                                    if (lng_idMoneda > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "";
                                        //......................................................................................
                                        if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                        {
                                            lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() : ""),
                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                       lng_idEmpresa.ToString().Trim(),
                                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idDelegacion > -1)
                                            {
                                                g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                            }
                                           
                                        }



                                        //si existe el registro continuo
                                        if (lng_idDelegacion > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "";
                                            //......................................................................................
                                            if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                            {
                                                lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                     lng_idEmpresa.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idCliente > -1)
                                                {
                                                    g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                                }
                                               
                                            }

                                            //Si no existe inserto el registro
                                            if (lng_idCliente == -1)
                                            {
                                                //Si contiene algo busco el idVendedor
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                    {
                                                        lng_idVendedor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idVendedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idVendedor > -1)
                                                        {
                                                            g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idVendedor == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDVENDEDOR),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMayor_CuentaContable
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMayor_CuentaContable = g_dct_ids_CTA_Mayor[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMayor_CuentaContable = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMayor_CuentaContable > -1)
                                                        {
                                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContable);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idMayor_CuentaContable == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTACONTABLE),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMayor_CuentaContrapartida
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMayor_CuentaContraPartida = g_dct_ids_CTA_Mayor[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMayor_CuentaContraPartida = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMayor_CuentaContraPartida > -1)
                                                        {
                                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContraPartida);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idMayor_CuentaContraPartida == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMayor_CuentaRetencion
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMayor_CuentaRetencion = g_dct_ids_CTA_Mayor[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMayor_CuentaRetencion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMayor_CuentaRetencion > -1)
                                                        {
                                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRetencion);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idMayor_CuentaRetencion == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTARETENCION),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMayor_CuentaCRemesa
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMayor_CuentaRemesa = g_dct_ids_CTA_Mayor[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMayor_CuentaRemesa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMayor_CuentaRemesa > -1)
                                                        {
                                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRemesa);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idMayor_CuentaRemesa == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTAREMESAS),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMayorAuxilar
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMayorAuxilar = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMayorAuxilar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMayorAuxilar > -1)
                                                        {
                                                            g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxilar);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idMayorAuxilar == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYORAUXILIAR),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMotivoAltaBaja_Alta
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_MotivosAltaBaja.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMotivoAltaBaja_Alta = g_dct_ids_MAE_MotivosAltaBaja[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMotivoAltaBaja_Alta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMotivoAltaBaja_Alta > -1)
                                                        {
                                                            g_dct_ids_MAE_MotivosAltaBaja.Add(str_AUX, lng_idMotivoAltaBaja_Alta);
                                                        }
                                                       
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idMotivoAltaBaja_Alta == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMOTIVOALTABAJA_ALTA),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idMotivoAltaBaja_Baja
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_31 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_MotivosAltaBaja.ContainsKey(str_AUX))
                                                    {
                                                        lng_idMotivoAltaBaja_Baja = g_dct_ids_MAE_MotivosAltaBaja[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idMotivoAltaBaja_Baja = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idMotivoAltaBaja_Baja > -1)
                                                        {
                                                            g_dct_ids_MAE_MotivosAltaBaja.Add(str_AUX, lng_idMotivoAltaBaja_Baja);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idMotivoAltaBaja_Baja == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMOTIVOALTABAJA_BAJA),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idVendedorCobrador
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_51 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                    {
                                                        lng_idVendedor_Cobrador = g_dct_ids_MAE_Vendedores[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idVendedor_Cobrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idVendedor_Cobrador > -1)
                                                        {
                                                            g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Cobrador);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idVendedor_Cobrador == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDVENDEDOR_COBRADOR),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idDepartamento
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                                    {
                                                        lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idDepartamento > -1)
                                                        {
                                                            g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idDepartamento == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDDEPARTAMENTO),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idTesoreria
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_58 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                    {
                                                        lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idTesoreria > -1)
                                                        {
                                                            g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idTesoreria == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDTESORERIA),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idAbonoTipo
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_AbonosTipos.ContainsKey(str_AUX))
                                                    {
                                                        lng_idAbonoTipo = g_dct_ids_MAE_AbonosTipos[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idAbonoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ABONOSTIPOS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idAbonoTipo > -1)
                                                        {
                                                            g_dct_ids_MAE_AbonosTipos.Add(str_AUX, lng_idAbonoTipo);
                                                        }
                                                        
                                                    }



                                                    //Si no existe muestro error
                                                    if (lng_idAbonoTipo == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDABONOTIPO),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idPredefinidoCabecera_Venta
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_61 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idPredefinidoCabecera_Venta = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idPredefinidoCabecera_Venta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idPredefinidoCabecera_Venta > -1)
                                                        {
                                                            g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Venta);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idPredefinidoCabecera_Venta == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPREDEFINIDOCABECERA_VENTAS),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idPredefinidoCabecera_Cobro
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_62 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                    {
                                                        lng_idPredefinidoCabecera_Cobro = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idPredefinidoCabecera_Cobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idPredefinidoCabecera_Cobro > -1)
                                                        {
                                                            g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Cobro);
                                                        }
                                                        
                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idPredefinidoCabecera_Cobro == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPREDEFINIDOCABECERA_COBROS),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idPrioridad
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_66 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_Prioridades.ContainsKey(str_AUX))
                                                    {
                                                        lng_idPrioridad = g_dct_ids_MAE_Prioridades[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idPrioridad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idPrioridad > -1)
                                                        {
                                                            g_dct_ids_MAE_Prioridades.Add(str_AUX, lng_idPrioridad);
                                                        }

                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idPrioridad == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPRIORIDAD),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }

                                                //Si contiene algo busco el idCliente_Cadena
                                                if (mdl_INTERNO_Tabla_Modelo.Objeto_68 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim();
                                                    //......................................................................................
                                                    if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                                    {
                                                        lng_idCliente_Cadena = g_dct_ids_MAE_Clientes[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idCliente_Cadena = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idCliente_Cadena > -1)
                                                        {
                                                            g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente_Cadena);
                                                        }

                                                    }
                                                }


                                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES +
                                                                " (" +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_RAZONSOCIAL + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NOMBRECOMERCIAL + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CIF + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_TELEFONO1 + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_TELEFONO2 + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_FAX + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CONFIDENCIAL + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_OBSERVACIONES + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDFORMAPAGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_RETENCION + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_RECARGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_FECHAALTA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_FECHABAJA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_RIESGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NUMEROPROVEEDOR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ALBARANVALORADO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDVENDEDOR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTACONTABLE + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTARETENCION + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYOR_CUENTAREMESAS + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMAYORAUXILIAR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMONEDA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NOFACTURAR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMOTIVOALTABAJA_ALTA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMOTIVOALTABAJA_BAJA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_PERMITEDEPOSITOS + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_APLICARRIESGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IMPRIMIRDEUDAACUMULADA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_EMAIL + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_WEB + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IMPRIMIRDATOSCADENA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_FACTURARDATOSCADENA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DESCUENTOGENERAL + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_EAN_CLIENTE + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_EAN_DOCUMENTO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_EAN_ENTREGA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_TIPODOCUMENTO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_TIPOPRECIO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_TIPOPUNTOVERDE + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_FORMATOFACTURA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_MODELOFACTURA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DIASRIESGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DOCUMENTOSRIESGO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDVENDEDOR_COBRADOR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IMPRIMIR_TRAZABILIDAD + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_INFOMICRO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDDEPARTAMENTO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_POSICIONLATITUD + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_POSICIONLONGITUD + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_EAN_VENDEDOR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDTESORERIA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDDELEGACION + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDABONOTIPO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPREDEFINIDOCABECERA_VENTAS + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPREDEFINIDOCABECERA_COBROS + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NUMEROROPO + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NUMEROAPLICADOR + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_PERMITECOBRARALBARAN + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDPRIORIDAD + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDCLIENTE_CADENA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CADENA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_NODECLARARMODELOSOFICIALES + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CRITERIOCAJA + "," +
                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CLIENTECRM +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                        "@codigo," +
                                                                        "@razonSocial," +
                                                                        "@nombreComercial," +
                                                                        "@cif," +
                                                                        "@telefono1," +
                                                                        "@telefono2," +
                                                                        "@fax," +
                                                                        "@confidencial," +
                                                                        "@observaciones," +
                                                                        "@idFormaPago," +
                                                                        "@retencion," +
                                                                        "@recargo," +
                                                                        "@fechaAlta," +
                                                                        "@fechaBaja," +
                                                                        "@riesgo," +
                                                                        "@descuentoProntoPago," +
                                                                        "@descuentoFinalAlbaran," +
                                                                        "@idImpuestoCabecera," +
                                                                        "@idEmpresa," +
                                                                        "@numeroProveedor," +
                                                                        "@albaranValorado," +
                                                                        "@idVendedor," +
                                                                        "@idMayor_CuentaContable," +
                                                                        "@idMayor_CuentaContraPartida," +
                                                                        "@idMayor_CuentaRetencion," +
                                                                        "@idMayor_CuentaRemesas," +
                                                                        "@idMayorAuxiliar," +
                                                                        "@idMoneda," +
                                                                        "@noFacturar," +
                                                                        "@idMotivoAltaBaja_Alta," +
                                                                        "@idMotivoAltaBaja_Baja," +
                                                                        "@permiteDepositos," +
                                                                        "@aplicarRiesgo," +
                                                                        "@imprimirDeudaAcumulada," +
                                                                        "@email," +
                                                                        "@web," +
                                                                        "@imprimirDatosCadena," +
                                                                        "@facturarDatosCadena," +
                                                                        "@descuentoGeneral," +
                                                                        "@EAN_Cliente," +
                                                                        "@EAN_Documento," +
                                                                        "@EAN_Entrega," +
                                                                        "@tipoDocumento," +
                                                                        "@tipoPrecio," +
                                                                        "@tipoPuntoVerde," +
                                                                        "@formatoFactura," +
                                                                        "@modeloFactura," +
                                                                        "@diasRiesgo," +
                                                                        "@documentosRiesgo," +
                                                                        "@descuentoFinalFactura," +
                                                                        "@idVendedor_Cobrador," +
                                                                        "@imprimir_Trazabilidad," +
                                                                        "@infoMicro," +
                                                                        "@idDepartamento," +
                                                                        "@posicionLatitud," +
                                                                        "@posicionLongitud," +
                                                                        "@EAN_Vendedor," +
                                                                        "@idTesoreria," +
                                                                        "@idDelegacion," +
                                                                        "@idAbonoTipo," +
                                                                        "@idPredefinidoCabecera_Ventas," +
                                                                        "@idPredefinidoCabecera_Cobros," +
                                                                        "@numeroROPO," +
                                                                        "@numeroAplicador," +
                                                                        "@permiteCobrarAlbaran," +
                                                                        "@idPrioridad," +
                                                                        "@idCliente_Cadena," +
                                                                        "@cadena," +
                                                                        "@noDeclararModelosOficiales," +
                                                                        "@criterioCaja," +
                                                                        "@clienteCRM" +
                                                                " ) ";

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                                    new SqlParameter("@razonSocial", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                    new SqlParameter("@nombreComercial", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                    new SqlParameter("@cif", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                        ?   new SqlParameter("@telefono1", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                                        :   new SqlParameter("@telefono1",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                                        ?   new SqlParameter("@telefono2", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                                        :   new SqlParameter("@telefono2",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                        ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                                        :   new SqlParameter("@fax",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                        ?   new SqlParameter("@confidencial", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                                        :   new SqlParameter("@confidencial",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_9)
                                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                                    new SqlParameter("@idFormaPago", lng_idFormaPago),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                                        ?   new SqlParameter("@retencion", mdl_INTERNO_Tabla_Modelo.Objeto_11)
                                                        :   new SqlParameter("@retencion",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                                        ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_12)
                                                        :   new SqlParameter("@recargo",  DBNull.Value),
                                                    new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                        ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_14)
                                                        :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                                        ?   new SqlParameter("@riesgo", mdl_INTERNO_Tabla_Modelo.Objeto_15)
                                                        :   new SqlParameter("@riesgo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                        ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_16)
                                                        :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                        ?   new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_17)
                                                        :   new SqlParameter("@descuentoFinalAlbaran",  DBNull.Value),
                                                    new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                        ?   new SqlParameter("@numeroProveedor", mdl_INTERNO_Tabla_Modelo.Objeto_20)
                                                        :   new SqlParameter("@numeroProveedor",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                        ?   new SqlParameter("@albaranValorado", mdl_INTERNO_Tabla_Modelo.Objeto_21)
                                                        :   new SqlParameter("@albaranValorado",  DBNull.Value),
                                                    lng_idVendedor > -1
                                                        ?   new SqlParameter("@idVendedor", lng_idVendedor)
                                                        :   new SqlParameter("@idVendedor",  DBNull.Value),
                                                    lng_idMayor_CuentaContable > -1
                                                        ?   new SqlParameter("@idMayor_CuentaContable", lng_idMayor_CuentaContable)
                                                        :   new SqlParameter("@idMayor_CuentaContable",  DBNull.Value),
                                                    lng_idMayor_CuentaContraPartida > -1
                                                        ?   new SqlParameter("@idMayor_CuentaContraPartida", lng_idMayor_CuentaContraPartida)
                                                        :   new SqlParameter("@idMayor_CuentaContraPartida",  DBNull.Value),
                                                    lng_idMayor_CuentaRetencion > -1
                                                        ?   new SqlParameter("@idMayor_CuentaRetencion", lng_idMayor_CuentaRetencion)
                                                        :   new SqlParameter("@idMayor_CuentaRetencion",  DBNull.Value),
                                                    lng_idMayor_CuentaRemesa > -1
                                                        ?   new SqlParameter("@idMayor_CuentaRemesas", lng_idMayor_CuentaRemesa)
                                                        :   new SqlParameter("@idMayor_CuentaRemesas",  DBNull.Value),
                                                    lng_idMayorAuxilar > -1
                                                        ?   new SqlParameter("@idMayorAuxiliar", lng_idMayorAuxilar)
                                                        :   new SqlParameter("@idMayorAuxiliar",  DBNull.Value),
                                                    new SqlParameter("@idMoneda", lng_idMoneda),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                        ?   new SqlParameter("@noFacturar", mdl_INTERNO_Tabla_Modelo.Objeto_29)
                                                        :   new SqlParameter("@noFacturar",  DBNull.Value),
                                                    lng_idMotivoAltaBaja_Alta > -1
                                                        ?   new SqlParameter("@idMotivoAltaBaja_Alta", lng_idMotivoAltaBaja_Alta)
                                                        :   new SqlParameter("@idMotivoAltaBaja_Alta",  DBNull.Value),
                                                    lng_idMotivoAltaBaja_Baja > -1
                                                        ?   new SqlParameter("@idMotivoAltaBaja_Baja", lng_idMotivoAltaBaja_Baja)
                                                        :   new SqlParameter("@idMotivoAltaBaja_Baja",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                        ?   new SqlParameter("@permiteDepositos", mdl_INTERNO_Tabla_Modelo.Objeto_32)
                                                        :   new SqlParameter("@permiteDepositos",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                        ?   new SqlParameter("@aplicarRiesgo", mdl_INTERNO_Tabla_Modelo.Objeto_33)
                                                        :   new SqlParameter("@aplicarRiesgo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                        ?   new SqlParameter("@imprimirDeudaAcumulada", mdl_INTERNO_Tabla_Modelo.Objeto_34)
                                                        :   new SqlParameter("@imprimirDeudaAcumulada",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                        ?   new SqlParameter("@email", mdl_INTERNO_Tabla_Modelo.Objeto_35)
                                                        :   new SqlParameter("@email",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                        ?   new SqlParameter("@web", mdl_INTERNO_Tabla_Modelo.Objeto_36)
                                                        :   new SqlParameter("@web",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_37 != null
                                                        ?   new SqlParameter("@imprimirDatosCadena", mdl_INTERNO_Tabla_Modelo.Objeto_37)
                                                        :   new SqlParameter("@imprimirDatosCadena",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                        ?   new SqlParameter("@facturarDatosCadena", mdl_INTERNO_Tabla_Modelo.Objeto_38)
                                                        :   new SqlParameter("@facturarDatosCadena",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                                        ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_39)
                                                        :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                                        ?   new SqlParameter("@EAN_Cliente", mdl_INTERNO_Tabla_Modelo.Objeto_40)
                                                        :   new SqlParameter("@EAN_Cliente",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                        ?   new SqlParameter("@EAN_Documento", mdl_INTERNO_Tabla_Modelo.Objeto_41)
                                                        :   new SqlParameter("@EAN_Documento",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                        ?   new SqlParameter("@EAN_Entrega", mdl_INTERNO_Tabla_Modelo.Objeto_42)
                                                        :   new SqlParameter("@EAN_Entrega",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                                        ?   new SqlParameter("@tipoDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_43)
                                                        :   new SqlParameter("@tipoDocumento",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_44 != null
                                                        ?   new SqlParameter("@tipoPrecio", mdl_INTERNO_Tabla_Modelo.Objeto_44)
                                                        :   new SqlParameter("@tipoPrecio",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                                        ?   new SqlParameter("@tipoPuntoVerde", mdl_INTERNO_Tabla_Modelo.Objeto_45)
                                                        :   new SqlParameter("@tipoPuntoVerde",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                                        ?   new SqlParameter("@formatoFactura", mdl_INTERNO_Tabla_Modelo.Objeto_46)
                                                        :   new SqlParameter("@formatoFactura",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_47 != null
                                                        ?   new SqlParameter("@modeloFactura", mdl_INTERNO_Tabla_Modelo.Objeto_47)
                                                        :   new SqlParameter("@modeloFactura",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                                        ?   new SqlParameter("@diasRiesgo", mdl_INTERNO_Tabla_Modelo.Objeto_48)
                                                        :   new SqlParameter("@diasRiesgo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                                        ?   new SqlParameter("@documentosRiesgo", mdl_INTERNO_Tabla_Modelo.Objeto_49)
                                                        :   new SqlParameter("@documentosRiesgo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                                        ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_50)
                                                        :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                    lng_idVendedor_Cobrador > -1
                                                        ?   new SqlParameter("@idVendedor_Cobrador", lng_idVendedor_Cobrador)
                                                        :   new SqlParameter("@idVendedor_Cobrador",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_52 != null
                                                        ?   new SqlParameter("@imprimir_Trazabilidad", mdl_INTERNO_Tabla_Modelo.Objeto_52)
                                                        :   new SqlParameter("@imprimir_Trazabilidad",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_53 != null
                                                        ?   new SqlParameter("@infoMicro", mdl_INTERNO_Tabla_Modelo.Objeto_53)
                                                        :   new SqlParameter("@infoMicro",  DBNull.Value),
                                                    lng_idDepartamento > -1
                                                        ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                                        :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_55 != null
                                                        ?   new SqlParameter("@posicionLatitud", mdl_INTERNO_Tabla_Modelo.Objeto_55)
                                                        :   new SqlParameter("@posicionLatitud",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_56 != null
                                                        ?   new SqlParameter("@posicionLongitud", mdl_INTERNO_Tabla_Modelo.Objeto_56)
                                                        :   new SqlParameter("@posicionLongitud",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_57!= null
                                                        ?   new SqlParameter("@EAN_Vendedor", mdl_INTERNO_Tabla_Modelo.Objeto_57)
                                                        :   new SqlParameter("@EAN_Vendedor",  DBNull.Value),
                                                    lng_idTesoreria > -1
                                                        ?   new SqlParameter("@idTesoreria", lng_idTesoreria)
                                                        :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                    new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                    lng_idAbonoTipo > -1
                                                        ?   new SqlParameter("@idAbonoTipo", lng_idAbonoTipo)
                                                        :   new SqlParameter("@idAbonoTipo",  DBNull.Value),
                                                    lng_idPredefinidoCabecera_Venta > -1
                                                        ?   new SqlParameter("@idPredefinidoCabecera_Ventas", lng_idPredefinidoCabecera_Venta)
                                                        :   new SqlParameter("@idPredefinidoCabecera_Ventas",  DBNull.Value),
                                                    lng_idPredefinidoCabecera_Cobro > -1
                                                        ?   new SqlParameter("@idPredefinidoCabecera_Cobros", lng_idPredefinidoCabecera_Cobro)
                                                        :   new SqlParameter("@idPredefinidoCabecera_Cobros",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_63 != null
                                                        ?   new SqlParameter("@numeroROPO", mdl_INTERNO_Tabla_Modelo.Objeto_63)
                                                        :   new SqlParameter("@numeroROPO",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_64 != null
                                                        ?   new SqlParameter("@numeroAplicador", mdl_INTERNO_Tabla_Modelo.Objeto_64)
                                                        :   new SqlParameter("@numeroAplicador",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                                        ?   new SqlParameter("@permiteCobrarAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_65)
                                                        :   new SqlParameter("@permiteCobrarAlbaran",  DBNull.Value),
                                                    lng_idPrioridad > -1
                                                        ?   new SqlParameter("@idPrioridad", lng_idPrioridad)
                                                        :   new SqlParameter("@idPrioridad",  DBNull.Value),
                                                     lng_idCliente_Cadena > -1
                                                        ?   new SqlParameter("@idCliente_Cadena", lng_idCliente_Cadena)
                                                        :   new SqlParameter("@idCliente_Cadena",  DBNull.Value),
                                                     mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                                        ?   new SqlParameter("@cadena", mdl_INTERNO_Tabla_Modelo.Objeto_69)
                                                        :   new SqlParameter("@cadena",  DBNull.Value),
                                                     mdl_INTERNO_Tabla_Modelo.Objeto_70 != null
                                                        ?   new SqlParameter("@noDeclararModelosOficiales", mdl_INTERNO_Tabla_Modelo.Objeto_70)
                                                        :   new SqlParameter("@noDeclararModelosOficiales",  DBNull.Value),
                                                     mdl_INTERNO_Tabla_Modelo.Objeto_71 != null
                                                        ?   new SqlParameter("@criterioCaja", mdl_INTERNO_Tabla_Modelo.Objeto_71)
                                                        :   new SqlParameter("@criterioCaja",  DBNull.Value),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                                        ?   new SqlParameter("@clienteCRM", mdl_INTERNO_Tabla_Modelo.Objeto_72)
                                                        :   new SqlParameter("@clienteCRM",  DBNull.Value)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                //si fue todo correcto relleno el lng de Cliente
                                                else
                                                {
                                                    lng_idCliente = mdl_ValorDevuelto_Modelo.Id;

                                                    //Añadir al Diccionario
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim();
                                                    g_dct_ids_MAE_Clientes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDDELEGACION),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDMONEDA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDIMPUESTOCABECERA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDFORMAPAGO),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }


                        //GEN_Direcciones ################################################
                        if (lng_idCliente > -1)
                        {
                            #region Direccion ENVIO
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_73 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim() : "";
                                //......................................................................................
                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_73 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_ENVIO > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                    }
                                    
                                }



                                //si existe el registro continuo
                                if (lng_idPais_ENVIO > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim() : "");
                                    //......................................................................................
                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_ENVIO > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                        }
                                        
                                    }

                                    //si existe el registro continuo
                                    if (lng_idProvincia_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_75 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                }
                                                
                                            }


                                            //Si no existe muestro error
                                            if (lng_idMunicipio_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_76 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                }
                                                
                                            }



                                            //Si no existe muestro error
                                            if (lng_idPoblacion_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDCLIENTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idCliente," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_ENVIO),
                                            new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                            lng_idMunicipio_ENVIO > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_ENVIO > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_77 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_77 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_78 != null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_78)
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idCliente", lng_idCliente),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_73 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion FACTURACION
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : "");
                                //......................................................................................
                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_FACTURACION = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_FACTURACION > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FACTURACION);
                                    }
                                    
                                }



                                //si existe el registro continuo
                                if (lng_idPais_FACTURACION > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_80 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_80.ToString().Trim() : "");
                                    //......................................................................................
                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_FACTURACION = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_80 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_80.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_FACTURACION > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FACTURACION);
                                        }
                                        
                                    }



                                    //si existe el registro continuo
                                    if (lng_idProvincia_FACTURACION > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_81 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_81.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FACTURACION = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_81.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FACTURACION);
                                                }
                                                
                                            }



                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_81.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_82 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_82.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FACTURACION = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_82.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FACTURACION);
                                                }
                                               
                                            }



                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_82.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDCLIENTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idCliente," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_FACTURACION),
                                            new SqlParameter("@idProvincia", lng_idProvincia_FACTURACION),
                                            lng_idMunicipio_FACTURACION > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FACTURACION)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_FACTURACION > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FACTURACION)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_83 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_83 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_84 != null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_84 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idCliente", lng_idCliente),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FACTURACION)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_80 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_80.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion Fiscal
                            try
                            {

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : "");
                                //......................................................................................
                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_FISCAL = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_FISCAL > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FISCAL);
                                    }
                                   
                                }



                                //si existe el registro continuo
                                if (lng_idPais_FISCAL > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim() : "");
                                    //......................................................................................
                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_FISCAL = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_FISCAL > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FISCAL);
                                        }
                                        
                                    }



                                    //si existe el registro continuo
                                    if (lng_idProvincia_FISCAL > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_87 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FISCAL = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FISCAL);
                                                }
                                                
                                            }


                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_88 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FISCAL = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FISCAL);
                                                }
                                                
                                            }


                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idYipoVia
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_89!= null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim();
                                            //......................................................................................
                                            if (g_dct_ids_GEN_TiposVias.ContainsKey(str_AUX))
                                            {
                                                lng_idTipoVia_FISCAL = g_dct_ids_GEN_TiposVias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTipoVia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTipoVia_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_TiposVias.Add(str_AUX, lng_idTipoVia_FISCAL);
                                                }
                                                
                                            }


                                            //Si no existe muestro error
                                            if (lng_idTipoVia_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                    " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPONUMERACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NUMEROCASA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CALIFICADORNUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_BLOQUE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PORTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_ESCALERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PLANTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PUERTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_DATOSCOMPLEMENTARIOSDOMICILIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDCLIENTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@idPais," +
                                                        "@idProvincia," +
                                                        "@idMunicipio," +
                                                        "@idPoblacion," +
                                                        "@idTipoVia," +
                                                        "@nombreVia," +
                                                        "@tipoNumeracion," +
                                                        "@numeroCasa," +
                                                        "@calificadorNumero," +
                                                        "@bloque," +
                                                        "@portal," +
                                                        "@escalera," +
                                                        "@planta," +
                                                        "@puerta," +
                                                        "@datosComplementariosDomicilio," +
                                                        "@codigoPostal," +
                                                        "@idCliente," +
                                                        "@tipoDireccion" +
                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_FISCAL),
                                            new SqlParameter("@idProvincia", lng_idProvincia_FISCAL),
                                            lng_idMunicipio_FISCAL > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FISCAL)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_FISCAL > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FISCAL)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            lng_idTipoVia_FISCAL > -1
                                                ?   new SqlParameter("@idTipoVia", lng_idTipoVia_FISCAL)
                                                :   new SqlParameter("@idTipoVia",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_90 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_90 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_91 != null
                                                ?   new SqlParameter("@tipoNumeracion", mdl_INTERNO_Tabla_Modelo.Objeto_91 )
                                                :   new SqlParameter("@tipoNumeracion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_92!= null
                                                ?   new SqlParameter("@numeroCasa", mdl_INTERNO_Tabla_Modelo.Objeto_92 )
                                                :   new SqlParameter("@numeroCasa",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_93 != null
                                                ?   new SqlParameter("@calificadorNumero", mdl_INTERNO_Tabla_Modelo.Objeto_93 )
                                                :   new SqlParameter("@calificadorNumero",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_94 != null
                                                ?   new SqlParameter("@bloque", mdl_INTERNO_Tabla_Modelo.Objeto_94 )
                                                :   new SqlParameter("@bloque",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_95 != null
                                                ?   new SqlParameter("@portal", mdl_INTERNO_Tabla_Modelo.Objeto_95 )
                                                :   new SqlParameter("@portal",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_96 != null
                                                ?   new SqlParameter("@escalera", mdl_INTERNO_Tabla_Modelo.Objeto_96 )
                                                :   new SqlParameter("@escalera",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_97 != null
                                                ?   new SqlParameter("@planta", mdl_INTERNO_Tabla_Modelo.Objeto_97 )
                                                :   new SqlParameter("@planta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_98 != null
                                                ?   new SqlParameter("@puerta", mdl_INTERNO_Tabla_Modelo.Objeto_98 )
                                                :   new SqlParameter("@puerta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_99 != null
                                                ?   new SqlParameter("@datosComplementariosDomicilio", mdl_INTERNO_Tabla_Modelo.Objeto_99 )
                                                :   new SqlParameter("@datosComplementariosDomicilio",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_100!= null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_100 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idCliente", lng_idCliente),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FISCAL)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA_FISCAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS_FISCAL),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion 
                        }
                        // ###############################################################

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Clientes_AgrupacionesClientesLineas
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Clientes_AgrupacionesClientesLineas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idcliente_AgrupacionClienteLinea = -1;
            long lng_idCliente = -1;
            long lng_idAgrupacionClienteLinea = -1;
            long lng_idAgrupacionClienteCabecera = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idcliente_AgrupacionClienteLinea = -1;
                        lng_idCliente = -1;
                        lng_idAgrupacionClienteLinea = -1;
                        lng_idAgrupacionClienteCabecera = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        


                        //Si no existe inserto el registro
                        if (lng_idEmpresa > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                            {
                                lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                            }
                            else
                            {
                                lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idCliente > -1)
                                {
                                    g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                }
                               
                            }
                           
                            //si existe el registro continuo
                            if (lng_idCliente > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_AgrupacionesClientesCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idAgrupacionClienteCabecera = g_dct_ids_MAE_AgrupacionesClientesCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idAgrupacionClienteCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESCABECERAS_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAgrupacionClienteCabecera > -1)
                                    {
                                        g_dct_ids_MAE_AgrupacionesClientesCabecera.Add(str_AUX, lng_idAgrupacionClienteCabecera);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idAgrupacionClienteCabecera > -1)
                                {

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idAgrupacionClienteCabecera.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_AgrupacionesClientesLinea.ContainsKey(str_AUX))
                                    {
                                        lng_idAgrupacionClienteLinea = g_dct_ids_MAE_AgrupacionesClientesLinea[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAgrupacionClienteLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS,
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_ID,
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_CODIGO,
                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTECABECERA,
                                                                                          lng_idAgrupacionClienteCabecera.ToString().Trim(),
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDEMPRESA,
                                                                                          lng_idEmpresa.ToString().Trim(),
                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAgrupacionClienteLinea > -1)
                                        {
                                            g_dct_ids_MAE_AgrupacionesClientesLinea.Add(str_AUX, lng_idAgrupacionClienteLinea);
                                        }
                                       
                                    }
                                    

                                    //Si no existe inserto el registro
                                    if (lng_idAgrupacionClienteLinea > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idCliente.ToString().Trim() + "_" +
                                                  lng_idAgrupacionClienteLinea.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_ClientesAgrupacionesClientesLinea.ContainsKey(str_AUX))
                                        {
                                            lng_idcliente_AgrupacionClienteLinea = g_dct_ids_MAE_ClientesAgrupacionesClientesLinea[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idcliente_AgrupacionClienteLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDCLIENTE,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDCLIENTE,
                                                                                                                            lng_idCliente.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTELINEA,
                                                                                                                            lng_idAgrupacionClienteLinea.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idcliente_AgrupacionClienteLinea > -1)
                                            {
                                                g_dct_ids_MAE_ClientesAgrupacionesClientesLinea.Add(str_AUX, lng_idcliente_AgrupacionClienteLinea);
                                            }
                                            
                                        }
                                        

                                        //Si no existe inserto el registro
                                        if (lng_idcliente_AgrupacionClienteLinea == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDCLIENTE + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTELINEA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_OBSERVACIONES +
                                                                " ) " +
                                                                " OUTPUT INSERTED.idCliente " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@idCliente," +
                                                                    "@idAgrupacionClienteLinea," +
                                                                    "@Observaciones" +
                                                                " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idCliente", lng_idCliente),
                                                new SqlParameter("@idAgrupacionClienteLinea", lng_idAgrupacionClienteLinea),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                                ?   new SqlParameter("@Observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                                :   new SqlParameter("@Observaciones",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDCLIENTE,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            else
                                            {
                                                //Añadir al Diccionario
                                                str_AUX = lng_idCliente.ToString().Trim() + "_" +
                                                  lng_idAgrupacionClienteLinea.ToString().Trim();
                                                g_dct_ids_MAE_ClientesAgrupacionesClientesLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTELINEA,
                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTELINEA),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDAGRUPACIONCLIENTECABECERA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDCLIENTE),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESCLIENTESLINEAS_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Clientes_AgrupacionesClientesLineas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_CuentasBancariasSEPA_Cobros
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_CuentasBancariasSEPA_Cobros(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idCuentaBancaria = -1;
            long lng_idEmpresa = -1;
            long lng_idCliente = -1;
            long lng_idEntidadBancaria = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idCuentaBancaria = -1;
                        lng_idEmpresa = -1;
                        lng_idCliente = -1;
                        lng_idEntidadBancaria = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Si contiene algo busco el idCliente
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                {
                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                }
                                else
                                {
                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCliente > -1)
                                    {
                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                    }
                                    
                                }
                                
                            }

                            //Si existe cliente busco el idcuenta bancaria por idCliente
                            if (lng_idCliente > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idCliente.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_CuentasbancariasSEPACobros.ContainsKey(str_AUX))
                                {
                                    lng_idCuentaBancaria = g_dct_ids_MAE_CuentasbancariasSEPACobros[str_AUX];
                                }
                                else
                                {
                                    lng_idCuentaBancaria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_ID,
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA,
                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDCLIENTE,
                                                                                 lng_idCliente.ToString().Trim(),
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDEMPRESA,
                                                                                 lng_idEmpresa.ToString().Trim(),
                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCuentaBancaria > -1)
                                    {
                                        g_dct_ids_MAE_CuentasbancariasSEPACobros.Add(str_AUX, lng_idCuentaBancaria);
                                    }
                                    
                                }
                               
                            }

                            //Si contiene algo busco el idEntidadbancaria
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_EntidadesBancarias.ContainsKey(str_AUX))
                                {
                                    lng_idEntidadBancaria = g_dct_ids_GEN_EntidadesBancarias[str_AUX];
                                }
                                else
                                {
                                    lng_idEntidadBancaria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEntidadBancaria > -1)
                                    {
                                        g_dct_ids_GEN_EntidadesBancarias.Add(str_AUX, lng_idEntidadBancaria);
                                    }

                                }

                                //Si no existe muestro error
                                if (lng_idEntidadBancaria == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDENTIDADBANCARIA),
                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }


                            //si no existe lo inserto
                            if (lng_idCuentaBancaria == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS +
                                                       " (" +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDCLIENTE + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDEMPRESA + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_DESCRIPCION + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IBAN + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_BICSWIFT + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_RECURRENTE + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_PORDEFECTO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FECHA_CANCELADO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FIRMANTE_NOMBRE + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FIRMANTE_NIF + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FECHA_FIRMAMANDATO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FECHA_RECIBIOMANDATOFIRMADO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_TIPO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_FIRMANTE_LOCALIDAD + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDENTIDADBANCARIA +
                                                       " ) " +
                                                       " OUTPUT INSERTED.id " +
                                                       " VALUES " +
                                                       " ( " +
                                                             "@idCliente," +
                                                             "@referencia," +
                                                             "@idEmpresa," +
                                                             "@descripcion," +
                                                             "@iban," +
                                                             "@bicSwift," +
                                                             "@recurrente," +
                                                             "@porDefecto," +
                                                             "@fecha_Cancelado," +
                                                             "@firmante_Nombre," +
                                                             "@firmante_nif," +
                                                             "@fecha_FirmaMandato," +
                                                             "@fecha_RecibioMandatoFirmado," +
                                                             "@tipo," +
                                                             "@firmante_Localidad," +
                                                             "@idEntidadBancaria" +
                                                       " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    lng_idCliente > -1
                                        ?   new SqlParameter("@idCliente", lng_idCliente )
                                        :   new SqlParameter("@idCliente",  DBNull.Value),
                                    new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                    new SqlParameter("@iban", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@bicSwift", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@bicSwift",  DBNull.Value),
                                    new SqlParameter("@recurrente", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                        ?   new SqlParameter("@porDefecto", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                        :   new SqlParameter("@porDefecto",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                        ?   new SqlParameter("@fecha_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_9)
                                        :   new SqlParameter("@fecha_Cancelado",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                        ?   new SqlParameter("@firmante_Nombre", mdl_INTERNO_Tabla_Modelo.Objeto_10)
                                        :   new SqlParameter("@firmante_Nombre",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                        ?   new SqlParameter("@firmante_nif", mdl_INTERNO_Tabla_Modelo.Objeto_11)
                                        :   new SqlParameter("@firmante_nif",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                        ?   new SqlParameter("@fecha_FirmaMandato", mdl_INTERNO_Tabla_Modelo.Objeto_12)
                                        :   new SqlParameter("@fecha_FirmaMandato",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                        ?   new SqlParameter("@fecha_RecibioMandatoFirmado", mdl_INTERNO_Tabla_Modelo.Objeto_13)
                                        :   new SqlParameter("@fecha_RecibioMandatoFirmado",  DBNull.Value),
                                    new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                        ?   new SqlParameter("@firmante_Localidad", mdl_INTERNO_Tabla_Modelo.Objeto_15)
                                        :   new SqlParameter("@firmante_Localidad",  DBNull.Value),
                                    lng_idEntidadBancaria > -1
                                        ?   new SqlParameter("@idEntidadBancaria", lng_idEntidadBancaria )
                                        :   new SqlParameter("@idEntidadBancaria",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idCliente.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_CuentasbancariasSEPACobros.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                if (lng_idCliente == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                                              lng_idCliente.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDCLIENTE),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }

                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Cobros), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_CuentasBancariasSEPA_Pagos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_CuentasBancariasSEPA_Pagos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idCuentaBancaria = -1;
            long lng_idEmpresa = -1;
            long lng_idProveeedor = -1;
            long lng_idEntidadBancaria = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idCuentaBancaria = -1;
                        lng_idEmpresa = -1;
                        lng_idProveeedor = -1;
                        lng_idEntidadBancaria = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Si contiene algo busco el idCliente
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                {
                                    lng_idProveeedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                }
                                else
                                {
                                    lng_idProveeedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idProveeedor > -1)
                                    {
                                        g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveeedor);
                                    }
                                   
                                }
                                
                            }

                            //Si existe cliente busco el idcuenta bancaria por idCliente
                            if (lng_idProveeedor > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                          lng_idProveeedor.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_CuentasbancariasSEPAPagos.ContainsKey(str_AUX))
                                {
                                    lng_idCuentaBancaria = g_dct_ids_MAE_CuentasbancariasSEPAPagos[str_AUX];
                                }
                                else
                                {
                                    lng_idCuentaBancaria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_ID,
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_DESCRIPCION,
                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDPROVEEDOR,
                                                                                  lng_idProveeedor.ToString().Trim(),
                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDEMPRESA,
                                                                                  lng_idEmpresa.ToString().Trim(),
                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCuentaBancaria > -1)
                                    {
                                        g_dct_ids_MAE_CuentasbancariasSEPAPagos.Add(str_AUX, lng_idCuentaBancaria);
                                    }
                                    
                                }
                                
                            }

                            //Si contiene algo busco el idEntidadbancaria
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_EntidadesBancarias.ContainsKey(str_AUX))
                                {
                                    lng_idEntidadBancaria = g_dct_ids_GEN_EntidadesBancarias[str_AUX];
                                }
                                else
                                {
                                    lng_idEntidadBancaria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_ID,
                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEntidadBancaria > -1)
                                    {
                                        g_dct_ids_GEN_EntidadesBancarias.Add(str_AUX, lng_idEntidadBancaria);
                                    }

                                }

                                //Si no existe muestro error
                                if (lng_idEntidadBancaria == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDENTIDADBANCARIA),
                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }

                            //si no existe lo inserto
                            if (lng_idCuentaBancaria == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS +
                                                       " (" +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDPROVEEDOR + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDEMPRESA + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_DESCRIPCION + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IBAN + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_BICSWIFT + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_PORDEFECTO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_FECHA_CANCELADO + "," +
                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDENTIDADBANCARIA +
                                                       " ) " +
                                                       " OUTPUT INSERTED.id " +
                                                       " VALUES " +
                                                       " ( " +
                                                             "@idProveedor," +
                                                             "@idEmpresa," +
                                                             "@descripcion," +
                                                             "@iban," +
                                                             "@bicSwift," +
                                                             "@porDefecto," +
                                                             "@fecha_Cancelado," +
                                                             "@idEntidadBancaria" +
                                                       " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    lng_idProveeedor > -1
                                        ?   new SqlParameter("@idProveedor", lng_idProveeedor )
                                        :   new SqlParameter("@idProveedor",  DBNull.Value),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                    new SqlParameter("@iban", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@bicSwift", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                        :   new SqlParameter("@bicSwift",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@porDefecto", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@porDefecto",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                        ?   new SqlParameter("@fecha_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                        :   new SqlParameter("@fecha_Cancelado",  DBNull.Value),
                                    lng_idEntidadBancaria > -1
                                        ?   new SqlParameter("@idEntidadBancaria", lng_idEntidadBancaria )
                                        :   new SqlParameter("@idEntidadBancaria",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_DESCRIPCION,
                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS,
                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                                lng_idProveeedor.ToString().Trim() + "_" +
                                                lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_CuentasbancariasSEPAPagos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                if (lng_idProveeedor == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS,
                                                                                                                              lng_idProveeedor.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDPROVEEDOR),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_DESCRIPCION,
                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }

                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_PAGOS_CAMPO_IDEMPRESA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_CuentasBancariasSEPA_Pagos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_DepartamentosExternos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_DepartamentosExternos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_DepartamentosExternos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_DepartamentosExternos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_DEPARTAMENTOSEXTERNOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_DepartamentosExternos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                           _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                           str_Fila,
                                                                                                           "",
                                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_DepartamentosExternos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_DepartamentosExternos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Embalajes
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Embalajes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;
            long lng_idUbicacionPerfil = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        lng_idUbicacionPerfil = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            //Si contiene algo busco el idUbicacionPerfil
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_UbicacionesPerfiles.ContainsKey(str_AUX))
                                {
                                    lng_idUbicacionPerfil = g_dct_ids_MAE_UbicacionesPerfiles[str_AUX];
                                }
                                else
                                {
                                    lng_idUbicacionPerfil = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_CODIGO,
                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idUbicacionPerfil > -1)
                                    {
                                        g_dct_ids_MAE_UbicacionesPerfiles.Add(str_AUX, lng_idUbicacionPerfil);
                                    }
                                   
                                }
                                
                                //Si no lo encontro muestro mensaje de error
                                if (lng_idUbicacionPerfil == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_IDUBICACIONPERFIL,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }

                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_EMBALAJECONRELACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_IDUBICACIONPERFIL +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@embalajeConRelacion," +
                                                            "@idUbicacionPerfil" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@embalajeConRelacion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                lng_idUbicacionPerfil > -1
                                        ?   new SqlParameter("@idUbicacionPerfil", lng_idUbicacionPerfil)
                                        :   new SqlParameter("@idUbicacionPerfil",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_Embalajes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Embalajes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Empleado
        public INTERNO_ValorDevuelto_Modelo Insertar_Empleado(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idEmpleado = -1;
            long lng_idEmpresa = -1;
            long lng_idMayor_CuentaNomina = -1;
            long lng_idMayor_CuentaRetencionIRPF = -1;
            long lng_idMayor_CuentaRetencionSS = -1;
            long lng_idMayor_CuentaAnticipos = -1;
            long lng_idMayor_CuentaIndemnizacion = -1;
            long lng_idMayor_CuentaDietasExternas = -1;
            long lng_idMayor_CuentaNetoNomina = -1;
            long lng_idMayorAuxiliar_Cuenta = -1;
            long lng_idMayor_CuentaPagoEnEspecie = -1;
            long lng_idDepartamento = -1;
            long lng_idFormaPago = -1;
            long lng_idCargo = -1;
            long lng_idProveedor = -1;
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            long lng_idPais_FISCAL = -1;
            long lng_idProvincia_FISCAL = -1;
            long lng_idMunicipio_FISCAL = -1;
            long lng_idPoblacion_FISCAL = -1;
            long lng_idTipoVia_FISCAL = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idEmpleado = -1;
                        lng_idEmpresa = -1;
                        lng_idMayor_CuentaNomina = -1;
                        lng_idMayor_CuentaRetencionIRPF = -1;
                        lng_idMayor_CuentaRetencionSS = -1;
                        lng_idMayor_CuentaAnticipos = -1;
                        lng_idMayor_CuentaIndemnizacion = -1;
                        lng_idMayor_CuentaDietasExternas = -1;
                        lng_idMayor_CuentaNetoNomina = -1;
                        lng_idMayorAuxiliar_Cuenta = -1;
                        lng_idMayor_CuentaPagoEnEspecie = -1;
                        lng_idDepartamento = -1;
                        lng_idFormaPago = -1;
                        lng_idCargo = -1;
                        lng_idProveedor = -1;
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        lng_idPais_FISCAL = -1;
                        lng_idProvincia_FISCAL = -1;
                        lng_idMunicipio_FISCAL = -1;
                        lng_idPoblacion_FISCAL = -1;
                        lng_idTipoVia_FISCAL = -1;
                        str_AUX = "";
                        #endregion

                        //inicializo la variable principal
                        lng_idEmpleado = -1;

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                            {
                                lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                            }
                            else
                            {
                                lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                   lng_idEmpresa.ToString().Trim(),
                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpleado > -1)
                                {
                                    g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                }
                                
                            }

                            //Si contiene algo busco el idProveedor
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                {
                                    lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                }
                                else
                                {
                                    lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_CODIGO,
                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idProveedor > -1)
                                    {
                                        g_dct_ids_MAE_Cargos.Add(str_AUX, lng_idProveedor);
                                    }

                                }

                                //Si no existe muestro error
                                if (lng_idProveedor == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDCARGO),
                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }

                            //Si no existe inserto el registro
                            if (lng_idEmpleado == -1)
                            {

                                //Si contiene algo busco el idMayor_CuentaNomina
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaNomina = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaNomina = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaNomina > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaNomina);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaNomina == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTANETONOMINA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaRetencionIRPF
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaRetencionIRPF = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaRetencionIRPF = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                           lng_idEmpresa.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaRetencionIRPF > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRetencionIRPF);
                                        }
                                        
                                    }
                                   
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaRetencionIRPF == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTARETENCIONIRPF),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaRetencionSS
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaRetencionSS = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaRetencionSS = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaRetencionSS > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRetencionSS);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaRetencionSS == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTARETENCIONSS),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaAnticipos
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaAnticipos = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaAnticipos = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaAnticipos > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaAnticipos);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaAnticipos == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAANTICIPOS),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaIndemnizacion
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaIndemnizacion = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaIndemnizacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaIndemnizacion > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaIndemnizacion);
                                        }
                                      
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaIndemnizacion == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAINDEMNIZACION),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaDietasExternas
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                {//Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaDietasExternas = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaDietasExternas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaDietasExternas > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaDietasExternas);
                                        }

                                        
                                    }//Compruebo si existe el registro en base de datos por el codigo
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaDietasExternas == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTADIETASEXTERNAS),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaNetoNomina
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaNetoNomina = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaNetoNomina = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaNetoNomina > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaNetoNomina);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaNetoNomina == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTANETONOMINA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayorAuxiliar_Cuenta 
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                                    {
                                        lng_idMayorAuxiliar_Cuenta = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayorAuxiliar_Cuenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayorAuxiliar_Cuenta > -1)
                                        {
                                            g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxiliar_Cuenta);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayorAuxiliar_Cuenta == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYORAUXILIAR_CUENTA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_CuentaPagoEnEspecie
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaPagoEnEspecie = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaPagoEnEspecie = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaPagoEnEspecie > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaPagoEnEspecie);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaPagoEnEspecie == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAPAGOENESPECIE),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idDepartamento
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                    {
                                        lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDepartamento > -1)
                                        {
                                            g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idDepartamento == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDDEPARTAMENTO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idFormaPago
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                                    {
                                        lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idFormaPago > -1)
                                        {
                                            g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idFormaPago == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDFORMAPAGO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idCargo
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Cargos.ContainsKey(str_AUX))
                                    {
                                        lng_idCargo = g_dct_ids_MAE_Cargos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idCargo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CARGOS_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idCargo > -1)
                                        {
                                            g_dct_ids_MAE_Cargos.Add(str_AUX, lng_idCargo);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idCargo == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDCARGO),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_NOMBRE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_TELEFONO1 + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_TELEFONO2 + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_DNI + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_FECHAALTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_FECHABAJA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDPROVEEDOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTANOMINAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTARETENCIONIRPF + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTARETENCIONSS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAANTICIPOS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAINDEMNIZACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTADIETASEXTERNAS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTANETONOMINA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYORAUXILIAR_CUENTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDMAYOR_CUENTAPAGOENESPECIE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDDEPARTAMENTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_KAIROSPRO_SINCRONIZACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_KAIROSPRO_TECNICO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDFORMAPAGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_EMAIL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CONFIDENCIAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDCARGO + 

                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@nombre," +
                                                            "@telefono1," +
                                                            "@telefono2," +
                                                            "@dni," +
                                                            "@idEmpresa," +
                                                            "@fechaAlta," +
                                                            "@fechaBaja," +
                                                            "@idProveedor," +
                                                            "@idMayor_CuentaNominas," +
                                                            "@idMayor_CuentaRetencionIRPF," +
                                                            "@idMayor_CuentaRetencionSS," +
                                                            "@idMayor_CuentaAnticipos," +
                                                            "@idMayor_CuentaIndemnizacion," +
                                                            "@idMayor_CuentaDietasExternas," +
                                                            "@idMayor_CuentaNetoNomina," +
                                                            "@idMayorAuxiliar_Cuenta," +
                                                            "@idMayor_CuentaPagoEnEspecie," +
                                                            "@idDepartamento," +
                                                            "@kairospro_Sincronizacion," +
                                                            "@kairospro_tecnico," +
                                                            "@idFormaPago," +
                                                            "@email," +
                                                            "@confidencial," +
                                                            "@idCargo" +

                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                        ?   new SqlParameter("@telefono1", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@telefono1",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@telefono2", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                        :   new SqlParameter("@telefono2",  DBNull.Value),
                                    new SqlParameter("@dni", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                        ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                        :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                    lng_idProveedor > -1
                                        ?   new SqlParameter("@idProveedor", lng_idProveedor )
                                        :   new SqlParameter("@idProveedor",  DBNull.Value),
                                    lng_idMayor_CuentaNomina > -1
                                        ?   new SqlParameter("@idMayor_CuentaNominas", lng_idMayor_CuentaNomina )
                                        :   new SqlParameter("@idMayor_CuentaNominas",  DBNull.Value),
                                    lng_idMayor_CuentaRetencionIRPF > -1
                                        ?   new SqlParameter("@idMayor_CuentaRetencionIRPF", lng_idMayor_CuentaRetencionIRPF )
                                        :   new SqlParameter("@idMayor_CuentaRetencionIRPF",  DBNull.Value),
                                    lng_idMayor_CuentaRetencionSS > -1
                                        ?   new SqlParameter("@idMayor_CuentaRetencionSS", lng_idMayor_CuentaRetencionSS )
                                        :   new SqlParameter("@idMayor_CuentaRetencionSS",  DBNull.Value),
                                    lng_idMayor_CuentaAnticipos > -1
                                        ?   new SqlParameter("@idMayor_CuentaAnticipos", lng_idMayor_CuentaAnticipos )
                                        :   new SqlParameter("@idMayor_CuentaAnticipos",  DBNull.Value),
                                    lng_idMayor_CuentaIndemnizacion > -1
                                        ?   new SqlParameter("@idMayor_CuentaIndemnizacion", lng_idMayor_CuentaIndemnizacion )
                                        :   new SqlParameter("@idMayor_CuentaIndemnizacion",  DBNull.Value),
                                    lng_idMayor_CuentaDietasExternas > -1
                                        ?   new SqlParameter("@idMayor_CuentaDietasExternas", lng_idMayor_CuentaDietasExternas )
                                        :   new SqlParameter("@idMayor_CuentaDietasExternas",  DBNull.Value),
                                    lng_idMayor_CuentaNetoNomina > -1
                                        ?   new SqlParameter("@idMayor_CuentaNetoNomina", lng_idMayor_CuentaNetoNomina )
                                        :   new SqlParameter("@idMayor_CuentaNetoNomina",  DBNull.Value),
                                    lng_idMayorAuxiliar_Cuenta > -1
                                        ?   new SqlParameter("@idMayorAuxiliar_Cuenta", lng_idMayorAuxiliar_Cuenta )
                                        :   new SqlParameter("@idMayorAuxiliar_Cuenta",  DBNull.Value),
                                    lng_idMayor_CuentaPagoEnEspecie > -1
                                        ?   new SqlParameter("@idMayor_CuentaPagoEnEspecie", lng_idMayor_CuentaPagoEnEspecie )
                                        :   new SqlParameter("@idMayor_CuentaPagoEnEspecie",  DBNull.Value),
                                    lng_idDepartamento > -1
                                        ?   new SqlParameter("@idDepartamento", lng_idDepartamento )
                                        :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                        ?   new SqlParameter("@kairospro_Sincronizacion", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                        :   new SqlParameter("@kairospro_Sincronizacion",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_21!= null
                                        ?   new SqlParameter("@kairospro_tecnico", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                        :   new SqlParameter("@kairospro_tecnico",  DBNull.Value),
                                    lng_idFormaPago > -1
                                        ?   new SqlParameter("@idFormaPago", lng_idFormaPago )
                                        :   new SqlParameter("@idFormaPago",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                        ?   new SqlParameter("@email", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                        :   new SqlParameter("@email",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                        ?   new SqlParameter("@confidencial", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                        :   new SqlParameter("@confidencial",  DBNull.Value),
                                    lng_idCargo > -1
                                        ?   new SqlParameter("@idCargo", lng_idCargo )
                                        :   new SqlParameter("@idCargo",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //todo Correcto
                                else
                                {
                                    lng_idEmpleado = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_Empleados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_NOMBRE,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }


                        //GEN_Direcciones ################################################

                        if (lng_idEmpleado > -1)
                        {
                            #region Direccion ENVIO
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_ENVIO > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idPais_ENVIO > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_ENVIO > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProvincia_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idMunicipio_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idPoblacion_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDEMPLEADO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idEmpleado," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_ENVIO),
                                            new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                            lng_idMunicipio_ENVIO > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_ENVIO > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idEmpleado", lng_idEmpleado),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion Fiscal
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_FISCAL = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_FISCAL > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FISCAL);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idPais_FISCAL > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_FISCAL = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_FISCAL > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FISCAL);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProvincia_FISCAL > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FISCAL = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FISCAL);
                                                }
                                                
                                            }
                                           
                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FISCAL = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FISCAL);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idYipoVia
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_TiposVias.ContainsKey(str_AUX))
                                            {
                                                lng_idTipoVia_FISCAL = g_dct_ids_GEN_TiposVias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTipoVia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTipoVia_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_TiposVias.Add(str_AUX, lng_idTipoVia_FISCAL);
                                                }
                                                
                                            }
                                           
                                            //Si no existe muestro error
                                            if (lng_idTipoVia_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                    " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPONUMERACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NUMEROCASA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CALIFICADORNUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_BLOQUE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PORTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_ESCALERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PLANTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PUERTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_DATOSCOMPLEMENTARIOSDOMICILIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDEMPLEADO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@idPais," +
                                                        "@idProvincia," +
                                                        "@idMunicipio," +
                                                        "@idPoblacion," +
                                                        "@idTipoVia," +
                                                        "@nombreVia," +
                                                        "@tipoNumeracion," +
                                                        "@numeroCasa," +
                                                        "@calificadorNumero," +
                                                        "@bloque," +
                                                        "@portal," +
                                                        "@escalera," +
                                                        "@planta," +
                                                        "@puerta," +
                                                        "@datosComplementariosDomicilio," +
                                                        "@codigoPostal," +
                                                        "@idEmpleado," +
                                                        "@tipoDireccion" +
                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_FISCAL),
                                            new SqlParameter("@idProvincia", lng_idProvincia_FISCAL),
                                            lng_idMunicipio_FISCAL > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FISCAL)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_FISCAL > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FISCAL)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            lng_idTipoVia_FISCAL > -1
                                                ?   new SqlParameter("@idTipoVia", lng_idTipoVia_FISCAL)
                                                :   new SqlParameter("@idTipoVia",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_38!= null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                                ?   new SqlParameter("@tipoNumeracion", mdl_INTERNO_Tabla_Modelo.Objeto_39 )
                                                :   new SqlParameter("@tipoNumeracion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_40!= null
                                                ?   new SqlParameter("@numeroCasa", mdl_INTERNO_Tabla_Modelo.Objeto_40 )
                                                :   new SqlParameter("@numeroCasa",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                                ?   new SqlParameter("@calificadorNumero", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                :   new SqlParameter("@calificadorNumero",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                ?   new SqlParameter("@bloque", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                                :   new SqlParameter("@bloque",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                                ?   new SqlParameter("@portal", mdl_INTERNO_Tabla_Modelo.Objeto_43 )
                                                :   new SqlParameter("@portal",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_44 != null
                                                ?   new SqlParameter("@escalera", mdl_INTERNO_Tabla_Modelo.Objeto_44 )
                                                :   new SqlParameter("@escalera",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                                ?   new SqlParameter("@planta", mdl_INTERNO_Tabla_Modelo.Objeto_45 )
                                                :   new SqlParameter("@planta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_46!= null
                                                ?   new SqlParameter("@puerta", mdl_INTERNO_Tabla_Modelo.Objeto_46)
                                                :   new SqlParameter("@puerta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_47 != null
                                                ?   new SqlParameter("@datosComplementariosDomicilio", mdl_INTERNO_Tabla_Modelo.Objeto_47 )
                                                :   new SqlParameter("@datosComplementariosDomicilio",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_48!= null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idEmpleado", lng_idEmpleado),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FISCAL)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_34 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA_FISCAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS_FISCAL),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                        }
                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_FormasPago
        public INTERNO_ValorDevuelto_Modelo Insertar_FormasDePago(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idFormaPago = -1;
            long lng_idEmpresa = -1;
            long lng_idHijo = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idFormaPago = -1;
                        lng_idEmpresa = -1;
                        lng_idHijo = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //inicializo la variable principal
                        lng_idFormaPago = -1;

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? (mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() + "_" + lng_idEmpresa.ToString().Trim()) : "");
                            //......................................................................................

                            if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                            {
                                lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                            }
                            else
                            {
                                lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idFormaPago > -1)
                                {
                                    g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idFormaPago == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO +
                                                        " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_DIASDESPLAZAMIENTOINICIAL + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_MESESDESPLAZAMIENTOINICIAL + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_MESESENTREGIROS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_DIASENTREGIROS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_NUMEROVENCIMIENTOS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_GENERAREMESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CAMPOFECHAPARACALCULO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_TIPOINICIO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_TIPOINICIO_DIA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_TIPOAPLICACIONIMPUESTO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa," +
                                                            "@diasDesplazamientoInicial," +
                                                            "@mesesDesplazamientoInicial," +
                                                            "@mesesEntreGiros," +
                                                            "@diasEntreGiros," +
                                                            "@numeroVencimientos," +
                                                            "@generaRemesa," +
                                                            "@campoFechaParaCalculo," +
                                                            "@tipoInicio," +
                                                            "@tipoInicio_Dia," +
                                                            "@tipoAplicacionImpuesto" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                new SqlParameter("@diasDesplazamientoInicial", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                new SqlParameter("@mesesDesplazamientoInicial", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                new SqlParameter("@mesesEntreGiros", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                new SqlParameter("@diasEntreGiros", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                new SqlParameter("@numeroVencimientos", mdl_INTERNO_Tabla_Modelo.Objeto_8),
                                new SqlParameter("@generaRemesa", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                    ?   new SqlParameter("@campoFechaParaCalculo", mdl_INTERNO_Tabla_Modelo.Objeto_10)
                                    :   new SqlParameter("@campoFechaParaCalculo",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                    ?   new SqlParameter("@tipoInicio", mdl_INTERNO_Tabla_Modelo.Objeto_11)
                                    :   new SqlParameter("@tipoInicio",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                    ?   new SqlParameter("@tipoInicio_Dia", mdl_INTERNO_Tabla_Modelo.Objeto_12)
                                    :   new SqlParameter("@tipoInicio_Dia",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                    ?   new SqlParameter("@tipoAplicacionImpuesto", mdl_INTERNO_Tabla_Modelo.Objeto_13)
                                    :   new SqlParameter("@tipoAplicacionImpuesto",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_FormasDePago),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //todo Correcto
                                else
                                {
                                    lng_idFormaPago = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_MAE_FormasPago.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                         _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                                                                         Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_FormasDePago),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }


                        //Comprobamos si existe la forma de pago e insertamos la linea
                        if (lng_idFormaPago > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo
                            lng_idHijo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_ID,
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_IDFORMAPAGO,
                                                                                      lng_idFormaPago.ToString().Trim(),
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_ORDEN,
                                                                                      (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : ""),
                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lng_idHijo == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE +
                                                            " (" +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_IDFORMAPAGO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_ORDEN + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_MESES + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_DIAS + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_DETALLE_CAMPO_PORCENTAJE +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@idFormaPago," +
                                                                "@orden," +
                                                                "@meses," +
                                                                "@dias," +
                                                                "@porcentaje" +
                                                            " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@idFormaPago", lng_idFormaPago),
                                    new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                    new SqlParameter("@meses", mdl_INTERNO_Tabla_Modelo.Objeto_15),
                                    new SqlParameter("@dias", mdl_INTERNO_Tabla_Modelo.Objeto_16),
                                    new SqlParameter("@porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_17)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                         _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                         mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                         mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_FormasDePago),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = lng_idFormaPago.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : "");
                                    g_dct_ids_MAE_FormasPagoDetalle.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_FormasDePago),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_FormasDePago), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Medidas
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Medidas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_SIGLAS +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@siglas" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                        ?   new SqlParameter("@siglas", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@siglas",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Medidas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_Medidas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_MEDIDAS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Medidas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Medidas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Medidas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_MotivosAltaBaja
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_MotivosAltaBaja(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_ID, 
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_CODIGO,
                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {

                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_TIPOMOTIVO + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@tipoMotivo" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@tipoMotivo", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_MotivosAltaBaja),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_MotivosAltaBaja.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA_CAMPO_CODIGO,
                                                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_MAE_MOTIVOALTABAJA),
                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_MotivosAltaBaja),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_MotivosAltaBaja),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_MotivosAltaBaja), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_NomenclaturasPrecios
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_NomenclaturasPrecios(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_CUANDO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_PREGUNTAR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ACTUALIZARPRECIOSCOMPRAS_TIPO + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@actualizarPreciosCompras_Cuando," +
                                                            "@actualizarPreciosCompras_Preguntar," +
                                                            "@actualizarPreciosCompras_Tipo" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                        ?   new SqlParameter("@actualizarPreciosCompras_Cuando", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                        :   new SqlParameter("@actualizarPreciosCompras_Cuando",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@actualizarPreciosCompras_Preguntar", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                        :   new SqlParameter("@actualizarPreciosCompras_Preguntar",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@actualizarPreciosCompras_Tipo", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                        :   new SqlParameter("@actualizarPreciosCompras_Tipo",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_NomenclaturasPrecios),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_NomenclaturasPrecios),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_NomenclaturasPrecios),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_NomenclaturasPrecios), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Proveedores
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Proveedores(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idProveedor = -1;
            long lng_idEmpresa = -1;
            long lng_idFormaPago = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idMayor_CuentaContable = -1;
            long lng_idMayor_CuentaContraPartida = -1;
            long lng_idMayor_CuentaRetencion = -1;
            long lng_idMayor_CuentaRemesa = -1;
            long lng_idMayor_CuentaDescuentosCompartidos = -1;
            long lng_idMayorAuxilar = -1;
            long lng_idMoneda = -1;
            long lng_idDepartamento = -1;
            long lng_idTesoreria = -1;
            long lng_idPredefinidoCabecera_Compras = -1;
            long lng_idPredefinidoCabecera_Pagos = -1;
            long lng_idRetencionTipo = -1;
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            long lng_idPais_FACTURACION = -1;
            long lng_idProvincia_FACTURACION = -1;
            long lng_idMunicipio_FACTURACION = -1;
            long lng_idPoblacion_FACTURACION = -1;
            long lng_idPais_FISCAL = -1;
            long lng_idProvincia_FISCAL = -1;
            long lng_idMunicipio_FISCAL = -1;
            long lng_idPoblacion_FISCAL = -1;
            long lng_idTipoVia_FISCAL = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idProveedor = -1;
                        lng_idEmpresa = -1;
                        lng_idFormaPago = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idMayor_CuentaContable = -1;
                        lng_idMayor_CuentaContraPartida = -1;
                        lng_idMayor_CuentaRetencion = -1;
                        lng_idMayor_CuentaRemesa = -1;
                        lng_idMayor_CuentaDescuentosCompartidos = -1;
                        lng_idMayorAuxilar = -1;
                        lng_idMoneda = -1;
                        lng_idDepartamento = -1;
                        lng_idTesoreria = -1;
                        lng_idPredefinidoCabecera_Compras = -1;
                        lng_idPredefinidoCabecera_Pagos = -1;
                        lng_idRetencionTipo = -1;
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        lng_idPais_FACTURACION = -1;
                        lng_idProvincia_FACTURACION = -1;
                        lng_idMunicipio_FACTURACION = -1;
                        lng_idPoblacion_FACTURACION = -1;
                        lng_idPais_FISCAL = -1;
                        lng_idProvincia_FISCAL = -1;
                        lng_idMunicipio_FISCAL = -1;
                        lng_idPoblacion_FISCAL = -1;
                        lng_idTipoVia_FISCAL = -1;
                        str_AUX = "";
                        #endregion

                        //Asigno el -1 al id principal para evitar errores a la hora de insertar las direcciones
                        lng_idProveedor = -1;

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        


                        //Si no existe inserto el registro
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                            {
                                lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                            }
                            else
                            {
                                lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idFormaPago > -1)
                                {
                                    g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                }
                                
                            }
                            

                            //si existe el registro continuo
                            if (lng_idFormaPago > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idImpuestoCabecera > -1)
                                    {
                                        g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                    }
                                   
                                }
                                

                                //si existe el registro continuo
                                if (lng_idImpuestoCabecera > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                    {
                                        lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMoneda > -1)
                                        {
                                            g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idMoneda > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                  lng_idEmpresa.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                                        {
                                            lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProveedor > -1)
                                            {
                                                g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                                            }
                                           
                                        }
                                        

                                        //si existe el registro continuo
                                        if (lng_idProveedor == -1)
                                        {
                                            //Si contiene algo busco el idMayor_CuentaContable
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor_CuentaContable = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor_CuentaContable = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor_CuentaContable > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContable);
                                                    }
                                                   
                                                }
                                               
                                                //Si no existe muestro error
                                                if (lng_idMayor_CuentaContable == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTACONTABLE),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idMayor_CuentaContrapartida
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor_CuentaContraPartida = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor_CuentaContraPartida = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor_CuentaContraPartida > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContraPartida);
                                                    }
                                                   
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idMayor_CuentaContraPartida == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idMayor_Retencion
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor_CuentaRetencion = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor_CuentaRetencion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor_CuentaRetencion > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRetencion);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idMayor_CuentaRetencion == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTARETENCION),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idMayor_CuentaRemesa
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor_CuentaRemesa = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor_CuentaRemesa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor_CuentaRemesa > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaRemesa);
                                                    }
                                                   
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idMayor_CuentaRemesa == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTAREMESAS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idMayor_CuentaDescunentosCompartidos
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayor_CuentaDescuentosCompartidos = g_dct_ids_CTA_Mayor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayor_CuentaDescuentosCompartidos = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayor_CuentaDescuentosCompartidos > -1)
                                                    {
                                                        g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaDescuentosCompartidos);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idMayor_CuentaDescuentosCompartidos == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTADESCUENTOSCOMPARTIDOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }


                                            //Si contiene algo busco el idMayorAuxilar
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                                                {
                                                    lng_idMayorAuxilar = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMayorAuxilar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMayorAuxilar > -1)
                                                    {
                                                        g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxilar);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idMayorAuxilar == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYORAUXILIAR),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idTesoreria
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                {
                                                    lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTesoreria > -1)
                                                    {
                                                        g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                    }
                                                   
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idTesoreria == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDTESORERIA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idDepartamento
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                                {
                                                    lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idDepartamento > -1)
                                                    {
                                                        g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idDepartamento == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDDEPARTAMENTO),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPredefinidoCabecera_Venta
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabecera_Compras = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabecera_Compras = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabecera_Compras > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Compras);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idPredefinidoCabecera_Compras == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDPREDEFINIDOCABECERA_COMPRAS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPredefinidoCabecera_Cobro
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_40 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabecera_Pagos = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabecera_Pagos = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabecera_Pagos > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Pagos);
                                                    }
                                                    
                                                }
                                                
                                                //Si no existe muestro error
                                                if (lng_idPredefinidoCabecera_Pagos == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDPREDEFINIDOCABECERA_PAGOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idRetencionTipo
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_45 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                                {
                                                    lng_idRetencionTipo = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idRetencionTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idRetencionTipo > -1)
                                                    {
                                                        g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idRetencionTipo == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDRETENCIONTIPO),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES +
                                                            " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_RAZONSOCIAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_NOMBRECOMERCIAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDFORMAPAGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMONEDA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTACONTABLE + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTACONTRAPARTIDA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTARETENCION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTAREMESAS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYOR_CUENTADESCUENTOSCOMPARTIDOS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMAYORAUXILIAR + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDTESORERIA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDDEPARTAMENTO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CIF + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_TELEFONO1 + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_TELEFONO2 + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_FAX + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_EMAIL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_WEB + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_REGISTROMERCANTIL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_OBSERVACIONES + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_RIESGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_DESCUENTOGENERAL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_PROVEEDORINTERNO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CANCELARPEDIDOSNOCOMPLETADOS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IMPRIMIRTRAZABILIDAD + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_PAPELPREIMPRESO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_OPERADORADUANAS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_LINEASTOTALESIMPRESION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_LINEASENCABECERAIMPRESION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_LINEASENPIEIMPRESION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_FECHAALTA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_FECHABAJA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDPREDEFINIDOCABECERA_COMPRAS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDPREDEFINIDOCABECERA_PAGOS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_RECARGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ACREEDORARRENDAMIENTO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_NODECLARARENINFORMATIVAS + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ACOGIDOACRITERIOCAJA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDRETENCIONTIPO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_PROVEEDORACREEDOR +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                    "@codigo," +
                                                                    "@razonSocial," +
                                                                    "@nombreComercial," +
                                                                    "@idEmpresa," +
                                                                    "@idFormaPago," +
                                                                    "@idImpuestoCabecera," +
                                                                    "@idMoneda," +
                                                                    "@idMayor_CuentaContable," +
                                                                    "@idMayor_CuentaContraPartida," +
                                                                    "@idMayor_CuentaRetencion," +
                                                                    "@idMayor_CuentaRemesas," +
                                                                    "@idMayor_CuentaDescuentosCompartidos," +
                                                                    "@idMayorAuxiliar," +
                                                                    "@idTesoreria," +
                                                                    "@idDepartamento," +
                                                                    "@cif," +
                                                                    "@telefono1," +
                                                                    "@telefono2," +
                                                                    "@fax," +
                                                                    "@email," +
                                                                    "@web," +
                                                                    "@registroMercantil," +
                                                                    "@observaciones," +
                                                                    "@riesgo," +
                                                                    "@descuentoProntoPago," +
                                                                    "@descuentoGeneral," +
                                                                    "@descuentoFinalFactura," +
                                                                    "@proveedorInterno," +
                                                                    "@cancelarPedidosNoCompletados," +
                                                                    "@imprimirTrazabilidad," +
                                                                    "@papelPreImpreso," +
                                                                    "@operadorAduanas," +
                                                                    "@lineasTotalesImpresion," +
                                                                    "@lineasEnCabeceraImpresion," +
                                                                    "@lineasEnPieImpresion," +
                                                                    "@fechaAlta," +
                                                                    "@fechaBaja," +
                                                                    "@idPredefinidoCabecera_Compras," +
                                                                    "@idPredefinidoCabecera_Pagos," +
                                                                    "@recargo," +
                                                                    "@acreedorArrendamiento," +
                                                                    "@noDeclararEnInformativas," +
                                                                    "@acogidoACriterioCaja," +
                                                                    "@idRetencionTipo," +
                                                                    "@proveedorAcreedor" +
                                                            " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                                new SqlParameter("@razonSocial", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                                    ?   new SqlParameter("@nombreComercial", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                                    :   new SqlParameter("@nombreComercial",  DBNull.Value),
                                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                new SqlParameter("@idFormaPago", lng_idFormaPago),
                                                new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                new SqlParameter("@idMoneda", lng_idMoneda),
                                                lng_idMayor_CuentaContable > -1
                                                    ?   new SqlParameter("@idMayor_CuentaContable", lng_idMayor_CuentaContable)
                                                    :   new SqlParameter("@idMayor_CuentaContable",  DBNull.Value),
                                                lng_idMayor_CuentaContraPartida > -1
                                                    ?   new SqlParameter("@idMayor_CuentaContraPartida", lng_idMayor_CuentaContraPartida)
                                                    :   new SqlParameter("@idMayor_CuentaContraPartida",  DBNull.Value),
                                                lng_idMayor_CuentaRetencion > -1
                                                    ?   new SqlParameter("@idMayor_CuentaRetencion", lng_idMayor_CuentaRetencion)
                                                    :   new SqlParameter("@idMayor_CuentaRetencion",  DBNull.Value),
                                                lng_idMayor_CuentaRemesa > -1
                                                    ?   new SqlParameter("@idMayor_CuentaRemesas", lng_idMayor_CuentaRemesa)
                                                    :   new SqlParameter("@idMayor_CuentaRemesas",  DBNull.Value),
                                                lng_idMayor_CuentaDescuentosCompartidos > -1
                                                    ?   new SqlParameter("@idMayor_CuentaDescuentosCompartidos", lng_idMayor_CuentaDescuentosCompartidos)
                                                    :   new SqlParameter("@idMayor_CuentaDescuentosCompartidos",  DBNull.Value),
                                                lng_idMayorAuxilar > -1
                                                    ?   new SqlParameter("@idMayorAuxiliar", lng_idMayorAuxilar)
                                                    :   new SqlParameter("@idMayorAuxiliar",  DBNull.Value),
                                                lng_idTesoreria > -1
                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria)
                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                lng_idDepartamento > -1
                                                    ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                                    :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                                new SqlParameter("@cif", mdl_INTERNO_Tabla_Modelo.Objeto_16),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                    ?   new SqlParameter("@telefono1", mdl_INTERNO_Tabla_Modelo.Objeto_17)
                                                    :   new SqlParameter("@telefono1",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                    ?   new SqlParameter("@telefono2", mdl_INTERNO_Tabla_Modelo.Objeto_18)
                                                    :   new SqlParameter("@telefono2",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                    ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_19)
                                                    :   new SqlParameter("@fax",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                    ?   new SqlParameter("@email", mdl_INTERNO_Tabla_Modelo.Objeto_20)
                                                    :   new SqlParameter("@email",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                    ?   new SqlParameter("@web", mdl_INTERNO_Tabla_Modelo.Objeto_21)
                                                    :   new SqlParameter("@web",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                    ?   new SqlParameter("@registroMercantil", mdl_INTERNO_Tabla_Modelo.Objeto_22)
                                                    :   new SqlParameter("@registroMercantil",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_23)
                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                    ?   new SqlParameter("@riesgo", mdl_INTERNO_Tabla_Modelo.Objeto_24)
                                                    :   new SqlParameter("@riesgo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                    ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_25)
                                                    :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_26 != null
                                                    ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_26)
                                                    :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                                    ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_27)
                                                    :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_28 != null
                                                    ?   new SqlParameter("@proveedorInterno", mdl_INTERNO_Tabla_Modelo.Objeto_28)
                                                    :   new SqlParameter("@proveedorInterno",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                    ?   new SqlParameter("@cancelarPedidosNoCompletados", mdl_INTERNO_Tabla_Modelo.Objeto_29)
                                                    :   new SqlParameter("@cancelarPedidosNoCompletados",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                    ?   new SqlParameter("@imprimirTrazabilidad", mdl_INTERNO_Tabla_Modelo.Objeto_30)
                                                    :   new SqlParameter("@imprimirTrazabilidad",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                    ?   new SqlParameter("@papelPreImpreso", mdl_INTERNO_Tabla_Modelo.Objeto_31)
                                                    :   new SqlParameter("@papelPreImpreso",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                    ?   new SqlParameter("@operadorAduanas", mdl_INTERNO_Tabla_Modelo.Objeto_32)
                                                    :   new SqlParameter("@operadorAduanas",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                    ?   new SqlParameter("@lineasTotalesImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_33)
                                                    :   new SqlParameter("@lineasTotalesImpresion",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                    ?   new SqlParameter("@lineasEnCabeceraImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_34)
                                                    :   new SqlParameter("@lineasEnCabeceraImpresion",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                    ?   new SqlParameter("@lineasEnPieImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_35)
                                                    :   new SqlParameter("@lineasEnPieImpresion",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                    ?   new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_36)
                                                    :   new SqlParameter("@fechaAlta",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_37 != null
                                                    ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_37)
                                                    :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                                lng_idPredefinidoCabecera_Compras > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_Compras", lng_idPredefinidoCabecera_Compras)
                                                    :   new SqlParameter("@idPredefinidoCabecera_Compras",  DBNull.Value),
                                                lng_idPredefinidoCabecera_Pagos > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_Pagos", lng_idPredefinidoCabecera_Pagos)
                                                    :   new SqlParameter("@idPredefinidoCabecera_Pagos",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                                    ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_40)
                                                    :   new SqlParameter("@recargo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                                    ?   new SqlParameter("@acreedorArrendamiento", mdl_INTERNO_Tabla_Modelo.Objeto_42)
                                                    :   new SqlParameter("@acreedorArrendamiento",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                                    ?   new SqlParameter("@noDeclararEnInformativas", mdl_INTERNO_Tabla_Modelo.Objeto_43)
                                                    :   new SqlParameter("@noDeclararEnInformativas",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_44 != null
                                                    ?   new SqlParameter("@acogidoACriterioCaja", mdl_INTERNO_Tabla_Modelo.Objeto_44)
                                                    :   new SqlParameter("@acogidoACriterioCaja",  DBNull.Value),
                                                lng_idRetencionTipo > -1
                                                    ?   new SqlParameter("@idRetencionTipo", lng_idRetencionTipo)
                                                    :   new SqlParameter("@idRetencionTipo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                                    ?   new SqlParameter("@proveedorAcreedor", mdl_INTERNO_Tabla_Modelo.Objeto_46)
                                                    :   new SqlParameter("@proveedorAcreedor",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //si fue todo correcto relleno el lng de Proveedor
                                            else
                                            {
                                                lng_idProveedor = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                g_dct_ids_MAE_Proveedores.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDMONEDA),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES
                                                                                                                        ),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_NOEXISTECAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDFORMAPAGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES
                                                                                                                       ),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }


                        //GEN_Direcciones ################################################
                        if (lng_idProveedor > -1)
                        {
                            #region Direccion ENVIO
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_47 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_47 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_ENVIO > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idPais_ENVIO > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_48 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_48 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_ENVIO > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProvincia_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_49 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_49.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_49.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idMunicipio_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_49.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_50 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idPoblacion_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVEEDOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idProveedor," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idPais", lng_idPais_ENVIO),
                                        new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                        lng_idMunicipio_ENVIO > -1
                                            ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                            :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                        lng_idPoblacion_ENVIO > -1
                                            ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                            :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_51 != null
                                            ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_51 )
                                            :   new SqlParameter("@nombreVia",  ""),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_52 != null
                                            ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_52 )
                                            :   new SqlParameter("@codigoPostal",  ""),
                                        new SqlParameter("@idProveedor", lng_idProveedor),
                                        new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_48 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_47 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion FACTURACION
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_FACTURACION = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_FACTURACION > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FACTURACION);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idPais_FACTURACION > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_FACTURACION = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_FACTURACION > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FACTURACION);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProvincia_FACTURACION > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_55 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FACTURACION = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FACTURACION);
                                                }
                                               
                                            }
                                           
                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_56 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FACTURACION = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FACTURACION);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVEEDOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idProveedor," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idPais", lng_idPais_FACTURACION),
                                        new SqlParameter("@idProvincia", lng_idProvincia_FACTURACION),
                                        lng_idMunicipio_FACTURACION > -1
                                            ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FACTURACION)
                                            :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                        lng_idPoblacion_FACTURACION > -1
                                            ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FACTURACION)
                                            :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_57 != null
                                            ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_57 )
                                            :   new SqlParameter("@nombreVia",  ""),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_58 != null
                                            ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_58 )
                                            :   new SqlParameter("@codigoPostal",  ""),
                                        new SqlParameter("@idProveedor", lng_idProveedor),
                                        new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FACTURACION)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion Fiscal
                            try
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                {
                                    lng_idPais_FISCAL = g_dct_ids_GEN_Paises[str_AUX];
                                }
                                else
                                {
                                    lng_idPais_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPais_FISCAL > -1)
                                    {
                                        g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FISCAL);
                                    }
                                    
                                }

                                

                                //si existe el registro continuo
                                if (lng_idPais_FISCAL > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                    {
                                        lng_idProvincia_FISCAL = g_dct_ids_GEN_Provincias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProvincia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idProvincia_FISCAL > -1)
                                        {
                                            g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FISCAL);
                                        }
                                        
                                    }
                                    

                                    //si existe el registro continuo
                                    if (lng_idProvincia_FISCAL > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_61 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FISCAL = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FISCAL);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_62 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FISCAL = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FISCAL);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idYipoVia
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_TiposVias.ContainsKey(str_AUX))
                                            {
                                                lng_idTipoVia_FISCAL = g_dct_ids_GEN_TiposVias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTipoVia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTipoVia_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_TiposVias.Add(str_AUX, lng_idTipoVia_FISCAL);
                                                }
                                                
                                            }
                                            
                                            //Si no existe muestro error
                                            if (lng_idTipoVia_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                    " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPONUMERACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NUMEROCASA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CALIFICADORNUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_BLOQUE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PORTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_ESCALERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PLANTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PUERTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_DATOSCOMPLEMENTARIOSDOMICILIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVEEDOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@idPais," +
                                                        "@idProvincia," +
                                                        "@idMunicipio," +
                                                        "@idPoblacion," +
                                                        "@idTipoVia," +
                                                        "@nombreVia," +
                                                        "@tipoNumeracion," +
                                                        "@numeroCasa," +
                                                        "@calificadorNumero," +
                                                        "@bloque," +
                                                        "@portal," +
                                                        "@escalera," +
                                                        "@planta," +
                                                        "@puerta," +
                                                        "@datosComplementariosDomicilio," +
                                                        "@codigoPostal," +
                                                        "@idProveedor," +
                                                        "@tipoDireccion" +
                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_FISCAL),
                                            new SqlParameter("@idProvincia", lng_idProvincia_FISCAL),
                                            lng_idMunicipio_FISCAL > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FISCAL)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_FISCAL > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FISCAL)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            lng_idTipoVia_FISCAL > -1
                                                ?   new SqlParameter("@idTipoVia", lng_idTipoVia_FISCAL)
                                                :   new SqlParameter("@idTipoVia",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_64 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_64 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_65!= null
                                                ?   new SqlParameter("@tipoNumeracion", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                                :   new SqlParameter("@tipoNumeracion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_66 != null
                                                ?   new SqlParameter("@numeroCasa", mdl_INTERNO_Tabla_Modelo.Objeto_66 )
                                                :   new SqlParameter("@numeroCasa",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                                ?   new SqlParameter("@calificadorNumero", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                                :   new SqlParameter("@calificadorNumero",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_68 != null
                                                ?   new SqlParameter("@bloque", mdl_INTERNO_Tabla_Modelo.Objeto_68 )
                                                :   new SqlParameter("@bloque",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                                ?   new SqlParameter("@portal", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                                :   new SqlParameter("@portal",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_70 != null
                                                ?   new SqlParameter("@escalera", mdl_INTERNO_Tabla_Modelo.Objeto_70 )
                                                :   new SqlParameter("@escalera",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_71 != null
                                                ?   new SqlParameter("@planta", mdl_INTERNO_Tabla_Modelo.Objeto_71 )
                                                :   new SqlParameter("@planta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                                ?   new SqlParameter("@puerta", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                                :   new SqlParameter("@puerta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                                ?   new SqlParameter("@datosComplementariosDomicilio", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                                :   new SqlParameter("@datosComplementariosDomicilio",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idProveedor", lng_idProveedor),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FISCAL)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA_FISCAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_59 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_59.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS_FISCAL),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion 
                        }
                        // ###############################################################

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Proveedores_AgrupacionesProveedoresLineas
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idProveedor_AgrupacionProveedorLinea = -1;
            long lng_idProveedor = -1;
            long lng_idAgrupacionProveedorLinea = -1;
            long lng_idAgrupacionProveedorCabecera = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idProveedor_AgrupacionProveedorLinea = -1;
                        lng_idProveedor = -1;
                        lng_idAgrupacionProveedorLinea = -1;
                        lng_idAgrupacionProveedorCabecera = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_MAE_Proveedores.ContainsKey(str_AUX))
                        {
                            lng_idProveedor = g_dct_ids_MAE_Proveedores[str_AUX];
                        }
                        else
                        {
                            lng_idProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idProveedor > -1)
                            {
                                g_dct_ids_MAE_Proveedores.Add(str_AUX, lng_idProveedor);
                            }
                            
                        }
                        

                        //Si no existe inserto el registro
                        if (lng_idProveedor > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                                
                            }
                            

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_AgrupacionesProveedoresCabecera.ContainsKey(str_AUX))
                                {
                                    lng_idAgrupacionProveedorCabecera = g_dct_ids_MAE_AgrupacionesProveedoresCabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idAgrupacionProveedorCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESCABECERAS_CAMPO_CODIGO,
                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAgrupacionProveedorCabecera > -1)
                                    {
                                        g_dct_ids_MAE_AgrupacionesProveedoresCabecera.Add(str_AUX, lng_idAgrupacionProveedorCabecera);
                                    }
                                    
                                }
                                

                                //si existe el registro continuo
                                if (lng_idAgrupacionProveedorCabecera > -1)
                                {

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idAgrupacionProveedorCabecera.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_AgrupacionesProveedoresLinea.ContainsKey(str_AUX))
                                    {
                                        lng_idAgrupacionProveedorLinea = g_dct_ids_MAE_AgrupacionesProveedoresLinea[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAgrupacionProveedorLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_ID,
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_CODIGO,
                                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORCABECERA,
                                                                                          lng_idAgrupacionProveedorCabecera.ToString().Trim(),
                                                                                          Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDEMPRESA,
                                                                                          lng_idEmpresa.ToString().Trim(),
                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAgrupacionProveedorLinea > -1)
                                        {
                                            g_dct_ids_MAE_AgrupacionesProveedoresLinea.Add(str_AUX, lng_idAgrupacionProveedorLinea);
                                        }
                                        
                                    }
                                   

                                    //Si no existe inserto el registro
                                    if (lng_idAgrupacionProveedorLinea > -1)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_idProveedor.ToString().Trim() + "_" +
                                                  lng_idAgrupacionProveedorLinea.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea.ContainsKey(str_AUX))
                                        {
                                            lng_idProveedor_AgrupacionProveedorLinea = g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProveedor_AgrupacionProveedorLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDPROVEEDOR,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDPROVEEDOR,
                                                                                                                            lng_idProveedor.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORLINEA,
                                                                                                                            lng_idAgrupacionProveedorLinea.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProveedor_AgrupacionProveedorLinea > -1)
                                            {
                                                g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea.Add(str_AUX, lng_idProveedor_AgrupacionProveedorLinea);
                                            }
                                            
                                        }
                                        

                                        //Si no existe inserto el registro
                                        if (lng_idProveedor_AgrupacionProveedorLinea == -1)
                                        {
                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDPROVEEDOR + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORLINEA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_OBSERVACIONES +
                                                                " ) " +
                                                                " OUTPUT INSERTED.idProveedor " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@idProveedor," +
                                                                    "@idAgrupacionProveedorLinea," +
                                                                    "@Observaciones" +
                                                                " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idProveedor", lng_idProveedor),
                                                new SqlParameter("@idAgrupacionProveedorLinea", lng_idAgrupacionProveedorLinea),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                                ?   new SqlParameter("@Observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                                :   new SqlParameter("@Observaciones",  DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDPROVEEDOR,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                                           mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            else
                                            {
                                                //Añadir al Diccionario
                                                str_AUX = lng_idProveedor.ToString().Trim() + "_" +
                                                            lng_idAgrupacionProveedorLinea.ToString().Trim();
                                                g_dct_ids_MAE_ProveedoresAgrupacionesProveedoresLinea.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORLINEA,
                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORLINEA,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDAGRUPACIONPROVEEDORCABECERA),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDEMPRESA),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS,
                                                                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_PROVEEDORES_AGRUPACIONESPROVEEDORESLINEAS_CAMPO_IDPROVEEDOR),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Proveedores_AgrupacionesProveedoresLineas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_TelefonosTipos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_TelefonosTipos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TelefonosTipos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_TelefonosTipos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_TELEFONOSTIPOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TelefonosTipos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TelefonosTipos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TelefonosTipos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Tesorerias
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Tesorerias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
            
            long lng_idTesorerias = -1;
            long lng_idEmpresa = -1;
            long lng_idMayor_CuentaContable = -1;
            long lng_idMayor_Tesoreria = -1;
            long lng_idMayor_Impuestos = -1;
            long lng_idMayor_Gastos = -1;
            long lng_idMayor_Comision = -1;
            long lng_idMayor_Proveedor = -1;
            long lng_idMayorAuxiliar = -1;
            long lng_idDepartamento = -1;
            long lng_idPais = -1;
            long lng_idEntidadBancaria = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idTesorerias = -1;
                        lng_idEmpresa = -1;
                        lng_idMayor_CuentaContable = -1;
                        lng_idMayor_Tesoreria = -1;
                        lng_idMayor_Impuestos = -1;
                        lng_idMayor_Gastos = -1;
                        lng_idMayor_Comision = -1;
                        lng_idMayor_Proveedor = -1;
                        lng_idMayorAuxiliar = -1;
                        lng_idDepartamento = -1;
                        lng_idPais = -1;
                        lng_idEntidadBancaria = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                            {
                                lng_idTesorerias = g_dct_ids_MAE_Tesorerias[str_AUX];
                            }
                            else
                            {
                                lng_idTesorerias = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idTesorerias > -1)
                                {
                                    g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesorerias);
                                }
                                
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idTesorerias == -1)
                            {

                                //Si contiene algo busco el idMayor_CuentaContable
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_CuentaContable = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_CuentaContable = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_CuentaContable > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_CuentaContable);
                                        }
                                       
                                    }
                                    

                                    //Si no existe muestro error
                                    if (lng_idMayor_CuentaContable == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_CUENTACONTABLE),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Tesoreria
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Tesoreria = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Tesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Tesoreria > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Tesoreria);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Tesoreria == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_TESORERIA),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Impuestos
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Impuestos = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Impuestos = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Impuestos > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Impuestos);
                                        }
                                       
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Impuestos == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_IMPUESTOS),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Gastos
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Gastos = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Gastos = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Gastos > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Gastos);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Gastos == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_GASTOS),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Comision
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Comision = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Comision = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Comision > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Comision);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Comision == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_COMISION),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayor_Proveedor
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Mayor.ContainsKey(str_AUX))
                                    {
                                        lng_idMayor_Proveedor = g_dct_ids_CTA_Mayor[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayor_Proveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYOR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayor_Proveedor > -1)
                                        {
                                            g_dct_ids_CTA_Mayor.Add(str_AUX, lng_idMayor_Proveedor);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayor_Proveedor == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_PROVEEDOR),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayorAuxiliar
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_MayorAuxiliar.ContainsKey(str_AUX))
                                    {
                                        lng_idMayorAuxiliar = g_dct_ids_CTA_MayorAuxiliar[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idMayorAuxiliar = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_MAYORAUXILIAR_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idMayorAuxiliar > -1)
                                        {
                                            g_dct_ids_CTA_MayorAuxiliar.Add(str_AUX, lng_idMayorAuxiliar);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idMayorAuxiliar == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYORAUXILIAR),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayorAuxiliar
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                    {
                                        lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDepartamento > -1)
                                        {
                                            g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                        }
                                        
                                    }
                                   
                                    //Si no existe muestro error
                                    if (lng_idDepartamento == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDDEPARTAMENTO),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idMayorAuxiliar
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                    {
                                        lng_idPais = g_dct_ids_GEN_Paises[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPais = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPais > -1)
                                        {
                                            g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idPais == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDPAIS),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                //Si contiene algo busco el idEntidadbancaria
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_EntidadesBancarias.ContainsKey(str_AUX))
                                    {
                                        lng_idEntidadBancaria = g_dct_ids_GEN_EntidadesBancarias[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEntidadBancaria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_GEN_ENTIDADESBANCARIAS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEntidadBancaria > -1)
                                        {
                                            g_dct_ids_GEN_EntidadesBancarias.Add(str_AUX, lng_idEntidadBancaria);
                                        }

                                    }

                                    //Si no existe muestro error
                                    if (lng_idEntidadBancaria == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDENTIDADBANCARIA),
                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IBAN + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_BICSWIFT + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CIF + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_CUENTACONTABLE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_TESORERIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_IMPUESTOS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_GASTOS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_COMISION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYOR_PROVEEDOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDMAYORAUXILIAR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_EFECTIVO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_SEPA20022_SUFIJO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_SEPA20022_FICHERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_SEPACOREB2B_SUFIJO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_SEPACOREB2B_FICHERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDDEPARTAMENTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_MULTIAPUNTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDENTIDADBANCARIA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@IBAN," +
                                                            "@bicSwift," +
                                                            "@cif," +
                                                            "@idMayor_CuentaContable," +
                                                            "@idMayor_Tesoreria," +
                                                            "@idMayor_Impuestos," +
                                                            "@idMayor_Gastos," +
                                                            "@idMayor_Comision," +
                                                            "@idMayor_Proveedor," +
                                                            "@idEmpresa," +
                                                            "@idMayorAuxiliar," +
                                                            "@efectivo," +
                                                            "@sepa20022_Sufijo," +
                                                            "@sepa20022_Fichero," +
                                                            "@sepaCOREB2B_Sufijo," +
                                                            "@sepaCOREB2B_Fichero," +
                                                            "@idDepartamento," +
                                                            "@idPais," +
                                                            "@multiapunte," +
                                                            "@idEntidadBancaria" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                    ?   new SqlParameter("@IBAN", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                    :   new SqlParameter("@IBAN",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                    ?   new SqlParameter("@bicSwift", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                    :   new SqlParameter("@bicSwift",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                    ?   new SqlParameter("@cif", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                    :   new SqlParameter("@cif",  DBNull.Value),
                                lng_idMayor_CuentaContable > -1
                                    ?   new SqlParameter("@idMayor_CuentaContable", lng_idMayor_CuentaContable)
                                    :   new SqlParameter("@idMayor_CuentaContable",  DBNull.Value),
                                lng_idMayor_Tesoreria > -1
                                    ?   new SqlParameter("@idMayor_Tesoreria", lng_idMayor_Tesoreria)
                                    :   new SqlParameter("@idMayor_Tesoreria",  DBNull.Value),
                                lng_idMayor_Impuestos > -1
                                    ?   new SqlParameter("@idMayor_Impuestos", lng_idMayor_Impuestos)
                                    :   new SqlParameter("@idMayor_Impuestos",  DBNull.Value),
                                lng_idMayor_Gastos > -1
                                    ?   new SqlParameter("@idMayor_Gastos", lng_idMayor_Gastos)
                                    :   new SqlParameter("@idMayor_Gastos",  DBNull.Value),
                                lng_idMayor_Comision > -1
                                    ?   new SqlParameter("@idMayor_Comision", lng_idMayor_Comision)
                                    :   new SqlParameter("@idMayor_Comision",  DBNull.Value),
                                lng_idMayor_Proveedor > -1
                                    ?   new SqlParameter("@idMayor_Proveedor", lng_idMayor_Proveedor)
                                    :   new SqlParameter("@idMayor_Proveedor",  DBNull.Value),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                lng_idMayorAuxiliar > -1
                                    ?   new SqlParameter("@idMayorAuxiliar", lng_idMayorAuxiliar)
                                    :   new SqlParameter("@idMayorAuxiliar",  DBNull.Value),
                                new SqlParameter("@efectivo", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                    ?   new SqlParameter("@sepa20022_Sufijo", mdl_INTERNO_Tabla_Modelo.Objeto_15)
                                    :   new SqlParameter("@sepa20022_Sufijo",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                    ?   new SqlParameter("@sepa20022_Fichero", mdl_INTERNO_Tabla_Modelo.Objeto_16)
                                    :   new SqlParameter("@sepa20022_Fichero",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                    ?   new SqlParameter("@sepaCOREB2B_Sufijo", mdl_INTERNO_Tabla_Modelo.Objeto_17)
                                    :   new SqlParameter("@sepaCOREB2B_Sufijo",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                    ?   new SqlParameter("@sepaCOREB2B_Fichero", mdl_INTERNO_Tabla_Modelo.Objeto_18)
                                    :   new SqlParameter("@sepaCOREB2B_Fichero",  DBNull.Value),
                                lng_idDepartamento > -1
                                    ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                    :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                lng_idPais > -1
                                    ?   new SqlParameter("@idPais", lng_idPais)
                                    :   new SqlParameter("@idPais",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                    ?   new SqlParameter("@multiapunte", mdl_INTERNO_Tabla_Modelo.Objeto_21)
                                    :   new SqlParameter("@multiapunte",  DBNull.Value),
                                lng_idEntidadBancaria > -1
                                        ?   new SqlParameter("@idEntidadBancaria", lng_idEntidadBancaria )
                                        :   new SqlParameter("@idEntidadBancaria",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_Tesorerias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Tesorerias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_TiposPagos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_TiposPagos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idTipoPago = -1;
            long lng_idEmpresa = -1;
            long lng_idPredefinidoCabecera = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idTipoPago = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        lng_idPredefinidoCabecera = -1;
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }


                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_TiposPagos.ContainsKey(str_AUX))
                            {
                                lng_idTipoPago = g_dct_ids_MAE_TiposPagos[str_AUX];
                            }
                            else
                            {
                                lng_idTipoPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idTipoPago > -1)
                                {
                                    g_dct_ids_MAE_TiposPagos.Add(str_AUX, lng_idTipoPago);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_idTipoPago == -1)
                            {

                                #region idPredefinidoCabecera
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                {
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                                    if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                    {
                                        lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPredefinidoCabecera > -1)
                                        {
                                            g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idPredefinidoCabecera == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDPREDEFINIDOCABECERA),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                #endregion

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_LETRA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_MOSTRARSPV + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDPREDEFINIDOCABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_OPCION + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa," +
                                                            "@letra," +
                                                            "@mostrarSPV," +
                                                            "@idPredefinidoCabecera," +
                                                            "@opcion" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                    ?   new SqlParameter("@letra", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                    :   new SqlParameter("@letra",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                    ?   new SqlParameter("@mostrarSPV", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                    :   new SqlParameter("@mostrarSPV",  DBNull.Value),
                                lng_idPredefinidoCabecera > -1
                                    ?   new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera)
                                    :   new SqlParameter("@idPredefinidoCabecera",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                    ?   new SqlParameter("@opcion", mdl_INTERNO_Tabla_Modelo.Objeto_7)
                                    :   new SqlParameter("@opcion",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_TiposPagos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposPagos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_TiposProductos
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_TiposProductos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposProductos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_TiposProductos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposProductos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposProductos),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposProductos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_TiposVariacionesExistencias
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_TiposVariacionesExistencias(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idTipoVariacionExistencia = -1;
            long lng_idEmpresa = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idTipoVariacionExistencia = -1;
                        lng_idEmpresa = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_MAE_TiposVariacionExistencias.ContainsKey(str_AUX))
                            {
                                lng_idTipoVariacionExistencia = g_dct_ids_MAE_TiposVariacionExistencias[str_AUX];
                            }
                            else
                            {
                                lng_idTipoVariacionExistencia = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idTipoVariacionExistencia > -1)
                                {
                                    g_dct_ids_MAE_TiposVariacionExistencias.Add(str_AUX, lng_idTipoVariacionExistencia);
                                }
                                
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idTipoVariacionExistencia == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS +
                                                        " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_DESCRIPCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@idEmpresa", lng_idEmpresa)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                         _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                         mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                         mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_MAE_TiposVariacionExistencias.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                         _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSVARIACIONESEXISTENCIAS_CAMPO_IDEMPRESA,
                                                                                                                         Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposVariacionesExistencias),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_TiposVariacionesExistencias), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Ubicaciones
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Ubicaciones(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
            
            long lng_idubicacion = -1;
            long lng_idEmpresa = -1;
            long lng_idAlmacen = -1;
            long lng_idUbicacionPerfil = -1;
            long lng_idTipoProducto = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idubicacion = -1;
                        lng_idEmpresa = -1;
                        lng_idAlmacen = -1;
                        lng_idUbicacionPerfil = -1;
                        lng_idTipoProducto = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                            //......................................................................................

                            if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                            {
                                lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                            }
                            else
                            {
                                lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idAlmacen > -1)
                                {
                                    g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                }
                                
                            }
                           

                            //Si no existe inserto el registro
                            if (lng_idAlmacen > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim() + "_" +
                                          lng_idAlmacen.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                {
                                    lng_idubicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idubicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDALMACEN,
                                                                                        lng_idAlmacen.ToString().Trim(),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idubicacion > -1)
                                    {
                                        g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idubicacion);
                                    }
                                    
                                }
                                

                                //Si no existe inserto el registro
                                if (lng_idubicacion == -1)
                                {
                                    //Si contiene algo busco el idUbicacionPerfil
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_UbicacionesPerfiles.ContainsKey(str_AUX))
                                        {
                                            lng_idUbicacionPerfil = g_dct_ids_MAE_UbicacionesPerfiles[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idUbicacionPerfil = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idUbicacionPerfil > -1)
                                            {
                                                g_dct_ids_MAE_UbicacionesPerfiles.Add(str_AUX, lng_idUbicacionPerfil);
                                            }
                                           
                                        }
                                        
                                        //Si no existe muestro error
                                        if (lng_idUbicacionPerfil == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDUBICACIONPERFIL),
                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    //Si contiene algo busco el idTipoProducto
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_TiposProductos.ContainsKey(str_AUX))
                                        {
                                            lng_idTipoProducto = g_dct_ids_MAE_TiposProductos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idTipoProducto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idTipoProducto > -1)
                                            {
                                                g_dct_ids_MAE_TiposProductos.Add(str_AUX, lng_idTipoProducto);
                                            }
                                            
                                        }
                                       
                                        //Si no existe muestro error
                                        if (lng_idTipoProducto == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDTIPOPRODUCTO),
                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES +
                                                                " (" +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_DESCRIPCION + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDALMACEN + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECOS_MAXALTO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECOS_MAXANCHO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECOS_MAXLARGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECO_ALTO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECO_ANCHO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_HUECO_LARGO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_PESOMAXIMO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDUBICACIONPERFIL + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDTIPOPRODUCTO + "," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ORDEN +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@codigo," +
                                                                    "@descripcion," +
                                                                    "@idEmpresa," +
                                                                    "@idAlmacen," +
                                                                    "@huecos_MaxAlto," +
                                                                    "@huecos_MaxAncho," +
                                                                    "@huecos_MaxLargo," +
                                                                    "@hueco_Alto," +
                                                                    "@hueco_Ancho," +
                                                                    "@hueco_Largo," +
                                                                    "@pesoMaximo," +
                                                                    "@idUbicacionPerfil," +
                                                                    "@idTipoProducto," +
                                                                    "@orden" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        new SqlParameter("@idAlmacen", lng_idAlmacen),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                ?   new SqlParameter("@huecos_MaxAlto", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                                :   new SqlParameter("@huecos_MaxAlto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                                ?   new SqlParameter("@huecos_MaxAncho", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                                :   new SqlParameter("@huecos_MaxAncho",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                ?   new SqlParameter("@huecos_MaxLargo", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                :   new SqlParameter("@huecos_MaxLargo",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                ?   new SqlParameter("@hueco_Alto", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                                :   new SqlParameter("@hueco_Alto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                                ?   new SqlParameter("@hueco_Ancho", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                                :   new SqlParameter("@hueco_Ancho",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                                ?   new SqlParameter("@hueco_Largo", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                                :   new SqlParameter("@hueco_Largo",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                                ?   new SqlParameter("@pesoMaximo", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                                :   new SqlParameter("@pesoMaximo",  DBNull.Value),
                                        lng_idUbicacionPerfil > -1
                                                ?   new SqlParameter("@idUbicacionPerfil", lng_idUbicacionPerfil )
                                                :   new SqlParameter("@idUbicacionPerfil",  DBNull.Value),
                                        lng_idTipoProducto > -1
                                                ?   new SqlParameter("@idTipoProducto", lng_idTipoProducto )
                                                :   new SqlParameter("@idTipoProducto",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                ?   new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                :   new SqlParameter("@orden",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                                   lng_idEmpresa.ToString().Trim() + "_" +
                                                   lng_idAlmacen.ToString().Trim();
                                        g_dct_ids_MAE_Ubicaciones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDALMACEN),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Empleado),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Ubicaciones), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_UbicacionesPerfiles
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_UbicacionesPerfiles(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_idubicacionPerfil = -1;
            long lng_idTipoProducto = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_idubicacionPerfil = -1;
                        lng_idTipoProducto = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_MAE_UbicacionesPerfiles.ContainsKey(str_AUX))
                        {
                            lng_idubicacionPerfil = g_dct_ids_MAE_UbicacionesPerfiles[str_AUX];
                        }
                        else
                        {
                            lng_idubicacionPerfil = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_ID,
                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_CODIGO,
                                                                             (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);


                            //Añadir al Diccionario
                            if (lng_idubicacionPerfil > -1)
                            {
                                g_dct_ids_MAE_UbicacionesPerfiles.Add(str_AUX, lng_idubicacionPerfil);
                            }
                            
                        }
                       
                        //Si no existe inserto el registro
                        if (lng_idubicacionPerfil == -1)
                        {
                            //Si contiene algo busco el idTipoProducto
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_TiposProductos.ContainsKey(str_AUX))
                                {
                                    lng_idTipoProducto = g_dct_ids_MAE_TiposProductos[str_AUX];
                                }
                                else
                                {
                                    lng_idTipoProducto = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPRODUCTOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idTipoProducto > -1)
                                    {
                                        g_dct_ids_MAE_TiposProductos.Add(str_AUX, lng_idTipoProducto);
                                    }
                                    
                                }
                                

                                //Si no lo encontro muestro mensaje de error
                                if (lng_idTipoProducto == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                 _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                 mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_IDTIPOPRODUCTO,
                                                                                                                                 Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_UbicacionesPerfiles),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }



                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECOS_MAXALTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECOS_MAXANCHO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECOS_MAXLARGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECO_ALTO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECO_ANCHO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_HUECO_LARGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_IDTIPOPRODUCTO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@huecos_MaxAlto," +
                                                            "@huecos_MaxAncho," +
                                                            "@huecos_MaxLargo," +
                                                            "@hueco_Alto," +
                                                            "@hueco_Ancho," +
                                                            "@hueco_Largo," +
                                                            "@idTipoProducto" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                        ?   new SqlParameter("@huecos_MaxAlto", mdl_INTERNO_Tabla_Modelo.Objeto_3 )
                                        :   new SqlParameter("@huecos_MaxAlto",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@huecos_MaxAncho", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                        :   new SqlParameter("@huecos_MaxAncho",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@huecos_MaxLargo", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                        :   new SqlParameter("@huecos_MaxLargo",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@hueco_Alto", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                        :   new SqlParameter("@hueco_Alto",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                        ?   new SqlParameter("@hueco_Ancho", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                        :   new SqlParameter("@hueco_Ancho",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                        ?   new SqlParameter("@hueco_Largo", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                        :   new SqlParameter("@hueco_Largo",  DBNull.Value),
                                lng_idTipoProducto > -1
                                        ?   new SqlParameter("@idTipoProducto", lng_idTipoProducto )
                                        :   new SqlParameter("@idTipoProducto",  DBNull.Value)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                    _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_UbicacionesPerfiles),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MAE_UbicacionesPerfiles.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONESPERFILES),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_UbicacionesPerfiles),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_UbicacionesPerfiles),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_UbicacionesPerfiles), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MAE_Vendedores
        public INTERNO_ValorDevuelto_Modelo Insertar_MAE_Vendedores(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idVendedor = -1;
            long lng_idEmpresa = -1;
            long lng_idEmpleado = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {

                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idVendedor = -1;
                        lng_idEmpresa = -1;
                        lng_idEmpleado = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                            
                        }
                        

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                            {
                                lng_idVendedor = g_dct_ids_MAE_Vendedores[str_AUX];
                            }
                            else
                            {
                                lng_idVendedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idVendedor > -1)
                                {
                                    g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor);
                                }
                               
                            }
                            

                            //Si no existe inserto el registro
                            if (lng_idVendedor == -1)
                            {

                                //Si contiene algo busco el idEmpleado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                    {
                                        lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEmpleado > -1)
                                        {
                                            g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                        }
                                        
                                    }
                                    
                                    //Si no existe muestro error
                                    if (lng_idEmpleado == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPLEADO),
                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_NOMBRE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_FECHAALTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_FECHABAJA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_EMAILDOCUMENTOS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPLEADO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_NOPERMITEDEVOLUCIONDESECHABLE +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@nombre," +
                                                            "@idEmpresa," +
                                                            "@fechaAlta," +
                                                            "@fechaBaja," +
                                                            "@emailDocumentos," +
                                                            "@idEmpleado," +
                                                            "@noPermiteDevolucionDesechable" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                    new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                        :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@emailDocumentos", mdl_INTERNO_Tabla_Modelo.Objeto_6)
                                        :   new SqlParameter("@emailDocumentos",  DBNull.Value),
                                    lng_idEmpleado > -1
                                        ?   new SqlParameter("@idEmpleado", lng_idEmpleado)
                                        :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                        ?   new SqlParameter("@noPermiteDevolucionDesechable", mdl_INTERNO_Tabla_Modelo.Objeto_8)
                                        :   new SqlParameter("@noPermiteDevolucionDesechable",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    g_dct_ids_MAE_Vendedores.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_MAE_Vendedores), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //MYT ################################################
        #region MYT_Administradores
        public INTERNO_ValorDevuelto_Modelo Insertar_Administradores(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idAdministrador = -1;

            //Direccion Envio
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_MYT_Administradores.ContainsKey(str_AUX))
                        {
                            lng_idAdministrador = g_dct_ids_MYT_Administradores[str_AUX];
                        }
                        else
                        {
                            lng_idAdministrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idAdministrador > -1)
                            {
                                g_dct_ids_MYT_Administradores.Add(str_AUX, lng_idAdministrador);
                            }

                        }

                        //Si no existe inserto el registro
                        if (lng_idAdministrador == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_DESCRIPCION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_FAX + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_OBSERVACIONES + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_FECHAALTA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_FECHABAJA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_TELEFONO1 + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_TELEFONO2 +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@codigo," +
                                                        "@descripcion," +
                                                        "@fax," +
                                                        "@observaciones," +
                                                        "@fechaAlta," +
                                                        "@fechaBaja," +
                                                        "@telefono1," +
                                                        "@telefono2" +
                                                    " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                    ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                    :   new SqlParameter("@fax",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                    ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                    :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                 mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                    ?   new SqlParameter("@telefono1", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                    :   new SqlParameter("@telefono1",  DBNull.Value),
                                  mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                    ?   new SqlParameter("@telefono2", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                    :   new SqlParameter("@telefono2",  DBNull.Value),

                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                                                                                                                            "               Nº linea:" + int_Contador_Linea_Excel);
                            }
                            //todo Correcto
                            else
                            {
                                lng_idAdministrador = mdl_ValorDevuelto_Modelo.Id;

                                //Añadir al Diccionario
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MYT_Administradores.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES),
                                                                                                                                                     nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        //GEN_Direcciones ################################################
                        if (lng_idAdministrador > -1)
                        {
                            #region Direccion ENVIO
                            try
                            {
                                //Si contiene algo busco el idPais
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                    {
                                        lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPais_ENVIO > -1)
                                        {
                                            g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                        }

                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idPais_ENVIO > -1)
                                {
                                    //Si contiene algo busco el idProvincia
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                        {
                                            lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProvincia_ENVIO > -1)
                                            {
                                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idProvincia_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idMunicipio_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idPoblacion_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDADMINISTRADOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idAdministrador," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idPais", lng_idPais_ENVIO),
                                        new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                        lng_idMunicipio_ENVIO > -1
                                            ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                            :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                        lng_idPoblacion_ENVIO > -1
                                            ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                            :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                            ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                            :   new SqlParameter("@nombreVia",  ""),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                            ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                            :   new SqlParameter("@codigoPostal",  ""),
                                        new SqlParameter("@idAdministrador", lng_idAdministrador),
                                        new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                                                                    ex.Message),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion
                        }

                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }
                    
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Administradores), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_EmpresasInstaladoras
        public INTERNO_ValorDevuelto_Modelo Insertar_EmpresaInstaladora(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idEmpresaInstaladora = -1;
            long lng_idEmpresa = -1;
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            long lng_idPais_FACTURACION = -1;
            long lng_idProvincia_FACTURACION = -1;
            long lng_idMunicipio_FACTURACION = -1;
            long lng_idPoblacion_FACTURACION = -1;
            long lng_idPais_FISCAL = -1;
            long lng_idProvincia_FISCAL = -1;
            long lng_idMunicipio_FISCAL = -1;
            long lng_idPoblacion_FISCAL = -1;
            long lng_idTipoVia_FISCAL = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idEmpresaInstaladora = -1;
                        lng_idEmpresa = -1;
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        lng_idPais_FACTURACION = -1;
                        lng_idProvincia_FACTURACION = -1;
                        lng_idMunicipio_FACTURACION = -1;
                        lng_idPoblacion_FACTURACION = -1;
                        lng_idPais_FISCAL = -1;
                        lng_idProvincia_FISCAL = -1;
                        lng_idMunicipio_FISCAL = -1;
                        lng_idPoblacion_FISCAL = -1;
                        lng_idTipoVia_FISCAL = -1;
                        str_AUX = "";
                        #endregion


                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa>-1)
                        {
                            //inicializo la variable principal
                            lng_idEmpresaInstaladora = -1;


                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MYT_EmpresasInstaladoras.ContainsKey(str_AUX))
                            {
                                lng_idEmpresaInstaladora = g_dct_ids_MYT_EmpresasInstaladoras[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresaInstaladora = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresaInstaladora > -1)
                                {
                                    g_dct_ids_MYT_EmpresasInstaladoras.Add(str_AUX, lng_idEmpresaInstaladora);
                                }

                            }

                            //Si no existe inserto el registro
                            if (lng_idEmpresaInstaladora == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_NOMBRECOMERCIAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_RAZONSOCIAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CIF + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_TELEFONO1 + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_TELEFONO2 + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_FAX + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_EMAIL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_WEB + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_FECHAALTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_FECHABAJA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_IDEMPRESA +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@nombreComercial," +
                                                            "@razonSocial," +
                                                            "@cif," +
                                                            "@telefono1," +
                                                            "@telefono2," +
                                                            "@fax," +
                                                            "@email," +
                                                            "@web," +
                                                            "@fechaAlta," +
                                                            "@fechaBaja," +
                                                            "@idEmpresa" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@nombreComercial", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                new SqlParameter("@razonSocial", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                    ?   new SqlParameter("@cif", mdl_INTERNO_Tabla_Modelo.Objeto_4)
                                    :   new SqlParameter("@cif",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                    ?   new SqlParameter("@telefono1", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                    :   new SqlParameter("@telefono1",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                    ?   new SqlParameter("@telefono2", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                    :   new SqlParameter("@telefono2",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                    ?   new SqlParameter("@fax", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                    :   new SqlParameter("@fax",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                    ?   new SqlParameter("@email", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                    :   new SqlParameter("@email",  DBNull.Value),
                                mdl_INTERNO_Tabla_Modelo.Objeto_9 != null
                                    ?   new SqlParameter("@web", mdl_INTERNO_Tabla_Modelo.Objeto_9 )
                                    :   new SqlParameter("@web",  DBNull.Value),
                                new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                    ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_11)
                                    :   new SqlParameter("@fechaBaja",  DBNull.Value),
                               new SqlParameter("@idEmpresa", lng_idEmpresa),

                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                                                                                                                                "               Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //todo Correcto
                                else
                                {
                                    lng_idEmpresaInstaladora = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                    g_dct_ids_MYT_EmpresasInstaladoras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS),
                                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_IDEMPRESA),
                                                                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        //GEN_Direcciones ################################################
                        if (lng_idEmpresaInstaladora > -1)
                        {
                            #region Direccion ENVIO
                            try
                            {
                                //Si contiene algo busco el idPais
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                    {
                                        lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPais_ENVIO > -1)
                                        {
                                            g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                        }

                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idPais_ENVIO > -1)
                                {
                                    //Si contiene algo busco el idprovincia
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                        {
                                            lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProvincia_ENVIO > -1)
                                            {
                                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idProvincia_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idMunicipio_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idPoblacion_ENVIO == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDEMPRESAINSTALADORA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idEmpresaInstaladora," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                    new SqlParameter("@idPais", lng_idPais_ENVIO),
                                    new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                    lng_idMunicipio_ENVIO > -1
                                        ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                        :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                    lng_idPoblacion_ENVIO > -1
                                        ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                        :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                        ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                        :   new SqlParameter("@nombreVia",  ""),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                        ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                        :   new SqlParameter("@codigoPostal",  ""),
                                    new SqlParameter("@idEmpresaInstaladora", lng_idEmpresaInstaladora),
                                    new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                    ex.Message),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion FACTURACION
                            try
                            {
                                //Si contiene algo busco el idPais
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                    {
                                        lng_idPais_FACTURACION = g_dct_ids_GEN_Paises[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPais_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPais_FACTURACION > -1)
                                        {
                                            g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FACTURACION);
                                        }

                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idPais_FACTURACION > -1)
                                {
                                    //Si contiene algo busco el idProvincia
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                        {
                                            lng_idProvincia_FACTURACION = g_dct_ids_GEN_Provincias[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProvincia_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProvincia_FACTURACION > -1)
                                            {
                                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FACTURACION);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idProvincia_FACTURACION > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FACTURACION = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FACTURACION);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FACTURACION = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FACTURACION = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FACTURACION > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FACTURACION);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FACTURACION == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }


                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDEMPRESAINSTALADORA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPais," +
                                                            "@idProvincia," +
                                                            "@idMunicipio," +
                                                            "@idPoblacion," +
                                                            "@nombreVia," +
                                                            "@codigoPostal," +
                                                            "@idEmpresaInstaladora," +
                                                            "@tipoDireccion" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                    new SqlParameter("@idPais", lng_idPais_FACTURACION),
                                    new SqlParameter("@idProvincia", lng_idProvincia_FACTURACION),
                                    lng_idMunicipio_FACTURACION > -1
                                        ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FACTURACION)
                                        :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                    lng_idPoblacion_FACTURACION > -1
                                        ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FACTURACION)
                                        :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                        ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                        :   new SqlParameter("@nombreVia",  ""),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                        ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                        :   new SqlParameter("@codigoPostal",  ""),
                                    new SqlParameter("@idEmpresaInstaladora", lng_idEmpresaInstaladora),
                                    new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FACTURACION)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }

                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }

                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FACTURACION_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                    ex.Message),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion

                            #region Direccion Fiscal
                            try
                            {
                                //Si contiene algo busco el idPais
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                    {
                                        lng_idPais_FISCAL = g_dct_ids_GEN_Paises[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idPais_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idPais_FISCAL > -1)
                                        {
                                            g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_FISCAL);
                                        }

                                    }
                                }


                                //si existe el registro continuo
                                if (lng_idPais_FISCAL > -1)
                                {
                                    //Si contiene algo busco el idProvincia
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                        {
                                            lng_idProvincia_FISCAL = g_dct_ids_GEN_Provincias[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProvincia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idProvincia_FISCAL > -1)
                                            {
                                                g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_FISCAL);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idProvincia_FISCAL > -1)
                                    {
                                        //Si contiene algo busco el idMunicipio
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                            {
                                                lng_idMunicipio_FISCAL = g_dct_ids_GEN_Municipios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idMunicipio_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idMunicipio_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_FISCAL);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idMunicipio_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPoblacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                            {
                                                lng_idPoblacion_FISCAL = g_dct_ids_GEN_Poblaciones[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPoblacion_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPoblacion_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_FISCAL);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idPoblacion_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idYipoVia
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_TiposVias.ContainsKey(str_AUX))
                                            {
                                                lng_idTipoVia_FISCAL = g_dct_ids_GEN_TiposVias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTipoVia_FISCAL = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSVIAS_CAMPO_CODIGO_INE,
                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTipoVia_FISCAL > -1)
                                                {
                                                    g_dct_ids_GEN_TiposVias.Add(str_AUX, lng_idTipoVia_FISCAL);
                                                }

                                            }

                                            //Si no existe muestro error
                                            if (lng_idTipoVia_FISCAL == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA_FISCAL),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                    " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDTIPOVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPONUMERACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NUMEROCASA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CALIFICADORNUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_BLOQUE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PORTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_ESCALERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PLANTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_PUERTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_DATOSCOMPLEMENTARIOSDOMICILIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDEMPRESAINSTALADORA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@idPais," +
                                                        "@idProvincia," +
                                                        "@idMunicipio," +
                                                        "@idPoblacion," +
                                                        "@idTipoVia," +
                                                        "@nombreVia," +
                                                        "@tipoNumeracion," +
                                                        "@numeroCasa," +
                                                        "@calificadorNumero," +
                                                        "@bloque," +
                                                        "@portal," +
                                                        "@escalera," +
                                                        "@planta," +
                                                        "@puerta," +
                                                        "@datosComplementariosDomicilio," +
                                                        "@codigoPostal," +
                                                        "@idEmpresaInstaladora," +
                                                        "@tipoDireccion" +
                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@idPais", lng_idPais_FISCAL),
                                            new SqlParameter("@idProvincia", lng_idProvincia_FISCAL),
                                            lng_idMunicipio_FISCAL > -1
                                                ?   new SqlParameter("@idMunicipio", lng_idMunicipio_FISCAL)
                                                :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                            lng_idPoblacion_FISCAL > -1
                                                ?   new SqlParameter("@idPoblacion", lng_idPoblacion_FISCAL)
                                                :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                            lng_idTipoVia_FISCAL > -1
                                                ?   new SqlParameter("@idTipoVia", lng_idTipoVia_FISCAL)
                                                :   new SqlParameter("@idTipoVia",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                :   new SqlParameter("@nombreVia",  ""),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                ?   new SqlParameter("@tipoNumeracion", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                :   new SqlParameter("@tipoNumeracion",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                ?   new SqlParameter("@numeroCasa", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                :   new SqlParameter("@numeroCasa",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                ?   new SqlParameter("@calificadorNumero", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                :   new SqlParameter("@calificadorNumero",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                ?   new SqlParameter("@bloque", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                :   new SqlParameter("@bloque",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                ?   new SqlParameter("@portal", mdl_INTERNO_Tabla_Modelo.Objeto_35 )
                                                :   new SqlParameter("@portal",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                ?   new SqlParameter("@escalera", mdl_INTERNO_Tabla_Modelo.Objeto_36 )
                                                :   new SqlParameter("@escalera",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_37 != null
                                                ?   new SqlParameter("@planta", mdl_INTERNO_Tabla_Modelo.Objeto_37 )
                                                :   new SqlParameter("@planta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                ?   new SqlParameter("@puerta", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                :   new SqlParameter("@puerta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                                ?   new SqlParameter("@datosComplementariosDomicilio", mdl_INTERNO_Tabla_Modelo.Objeto_39 )
                                                :   new SqlParameter("@datosComplementariosDomicilio",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                                ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_40 )
                                                :   new SqlParameter("@codigoPostal",  ""),
                                            new SqlParameter("@idEmpresaInstaladora", lng_idEmpresaInstaladora),
                                            new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_FISCAL)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA_FISCAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS_FISCAL),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_FISCAL_TEXTO,
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                                                                    ex.Message),
                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            #endregion
                        }

                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }

                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_EmpresaInstaladora), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_InstalacionesUsos
        public INTERNO_ValorDevuelto_Modelo Insertar_InstalacionesUsos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesUsos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MYT_InstalacionesUsos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesUsos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesUsos), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesUsos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_InstalacionesEstados
        public INTERNO_ValorDevuelto_Modelo Insertar_InstalacionesEstados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_INSTALACIONNOSELECCIONABLE +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@instalacionNoSeleccionable" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                mdl_INTERNO_Tabla_Modelo.Objeto_3 != null
                                ?   new SqlParameter("@instalacionNoSeleccionable", mdl_INTERNO_Tabla_Modelo.Objeto_3)
                                :   new SqlParameter("@instalacionNoSeleccionable",  DBNull.Value),
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesEstados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MYT_InstalacionesEstados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesEstados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesEstados), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesEstados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_TiposContratos
        public INTERNO_ValorDevuelto_Modelo Insertar_TiposContratos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            long lng_id = -1;


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        lng_id = -1;
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Compruebo si existe el registro en base de datos por el codigo
                        lng_id = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_ID,
                                                                              Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_CODIGO,
                                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                        //Si no existe inserto el registro
                        if (lng_id == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion" +
                                                        " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                     _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                     mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                     mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_TiposContratos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Añadir al Diccionario
                                string str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MYT_TiposContratos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_CODIGO,
                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_TiposContratos),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                            str_Fila,
                                                                                                            "",
                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_TiposContratos), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_TiposContratos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_Tecnicos
        public INTERNO_ValorDevuelto_Modelo Insertar_Tecnicos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idTecnico = -1;
            long lng_idEmpresa = -1;
            long lng_idEmpleado = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idTecnico = -1;
                        lng_idEmpresa = -1;
                        lng_idEmpleado = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                        if (lng_idEmpresa > -1)
                        {
                            // Compruebo si existe el registro en base de datos por el codigo.......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "") + "_" +
                                      lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                            {
                                lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                            }
                            else
                            {
                                lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                   lng_idEmpresa.ToString().Trim(),
                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpleado > -1)
                                {
                                    g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpresa);
                                }

                            }

                            if (lng_idEmpleado > -1)
                            {
                                //inicializo la variable principal
                                lng_idTecnico = -1;

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "") + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                {
                                    lng_idTecnico = g_dct_ids_MYT_Tecnicos[str_AUX];
                                }
                                else
                                {
                                    lng_idTecnico = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idTecnico > -1)
                                    {
                                        g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico);
                                    }

                                }

                                //Si no existe inserto el registro
                                if (lng_idTecnico == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_NOMBRE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDEMPRESA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_FECHAALTA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_FECHABAJA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_EMAILDOCUMENTOS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDEMPLEADO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDTERMINAL +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@codigo," +
                                                                "@nombre," +
                                                                "@idEmpresa," +
                                                                "@fechaAlta," +
                                                                "@fechaBaja," +
                                                                "@emailDocumentos," +
                                                                "@idEmpleado," +
                                                                "@idTerminal" +
                                                            " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                                        new SqlParameter("@nombre", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                        new SqlParameter("@fechaAlta", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                            ?   new SqlParameter("@fechaBaja", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                            :   new SqlParameter("@fechaBaja",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                            ?   new SqlParameter("@emailDocumentos", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                            :   new SqlParameter("@emailDocumentos",  DBNull.Value),
                                        new SqlParameter("@idEmpleado", lng_idEmpleado),
                                        new SqlParameter("@idTerminal",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos),
                                                                                                                                                                    "               Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idTecnico = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                        g_dct_ids_MYT_Tecnicos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS),
                                                                                                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDEMPLEADO),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos),
                                                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_IDEMPRESA),
                                                                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }

                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Tecnicos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_PlanMantenimientosCabeceras
        public INTERNO_ValorDevuelto_Modelo Insertar_PlanMantenimientos(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idPlanMantenimientoCabecera = -1;
            long lng_idPlanMantenimientoLinea = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idPlanMantenimientoCabecera = -1;
                        lng_idPlanMantenimientoLinea = -1;
                        str_AUX = "";
                        #endregion

                        #region Cabecera
                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_MYT_PlanMantenimientosCabeceras.ContainsKey(str_AUX))
                        {
                            lng_idPlanMantenimientoCabecera = g_dct_ids_MYT_PlanMantenimientosCabeceras[str_AUX];
                        }
                        else
                        {
                            lng_idPlanMantenimientoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_CODIGO,
                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idPlanMantenimientoCabecera > -1)
                            {
                                g_dct_ids_MYT_PlanMantenimientosCabeceras.Add(str_AUX, lng_idPlanMantenimientoCabecera);
                            }

                        }


                        //Si no existe inserto el registro
                        if (lng_idPlanMantenimientoCabecera == -1)
                        {
                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS +
                                                " (" +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_CODIGO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_DESCRPCION + 
                                                 " ) " +
                                                " OUTPUT INSERTED.id " +
                                                " VALUES " +
                                                " ( " +
                                                    "@codigo," +
                                                    "@descripcion" +
                                                " ) ";

                            //Parametros
                            object[] arr_Parametros_Insert = new object[]
                            {
                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_1),
                            new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_2)
                            };

                            //Llamamos a la funcion de insertar
                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_CODIGO,
                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS,
                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PlanMantenimientos),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            //si es correcto relleno el id de la cabecera para las lineas
                            else
                            {
                                lng_idPlanMantenimientoCabecera = mdl_ValorDevuelto_Modelo.Id;

                                //Añadir al Diccionario
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");
                                g_dct_ids_MYT_PlanMantenimientosCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                            }
                        }

                        #endregion

                        #region Lineas
                        //LINEAS ############################################################################################
                        //si el id de la cabecera existe
                        if (lng_idPlanMantenimientoCabecera > -1)
                        {

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                      lng_idPlanMantenimientoCabecera.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_MYT_PlanMantenimientosLineas.ContainsKey(str_AUX))
                            {
                                lng_idPlanMantenimientoLinea = g_dct_ids_MYT_PlanMantenimientosLineas[str_AUX];
                            }
                            else
                            {
                                lng_idPlanMantenimientoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_PERIOCIDAD,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_PERIOCIDADCALCULO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_IDPLANMANTENIMIENTOCABECERA,
                                                                                                            lng_idPlanMantenimientoCabecera.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idPlanMantenimientoLinea > -1)
                                {
                                    g_dct_ids_MYT_PlanMantenimientosLineas.Add(str_AUX, lng_idPlanMantenimientoLinea);
                                }

                            }


                            //Si no existe inserto el registro
                            if (lng_idPlanMantenimientoLinea == -1)
                            {
                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_IDPLANMANTENIMIENTOCABECERA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_PERIOCIDAD + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_PERIOCIDADCALCULO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_DESCRIPCION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idPlanMantenimientoCabecera," +
                                                            "@periodicidad," +
                                                            "@periodicidadCalculo," +
                                                            "@descripcion" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@idPlanMantenimientoCabecera", lng_idPlanMantenimientoCabecera),
                                new SqlParameter("@periodicidad", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                new SqlParameter("@periodicidadCalculo", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_5)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS_CAMPO_PERIOCIDAD,
                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSLINEAS,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PlanMantenimientos),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //Todo Correcto
                                else
                                {
                                    lng_idPlanMantenimientoLinea = mdl_ValorDevuelto_Modelo.Id;

                                    //Añadir al Diccionario
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                             (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                            lng_idPlanMantenimientoCabecera.ToString().Trim();
                                    g_dct_ids_MYT_PlanMantenimientosLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }

                        }
                        // ##################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PlanMantenimientos), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PlanMantenimientos), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_InstalacionesCabecera
        public INTERNO_ValorDevuelto_Modelo Insertar_InstalacionesCabecera(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idInstalacionCabecera = -1;
            long lng_idInstalacionLinea = -1;
            long lng_idCliente = -1;
            long lng_idInstalacionEstado = -1;
            long lng_idAdministrador = -1;
            long lng_idEmpresaInstaladora = -1;
            long lng_idInstalacionEstadoLinea = -1;
            long lng_idPlanMantenimientoCabecera = -1;
            long lng_idInstalaionUso = -1;
            long lng_idTipoContrato = -1;
            long lng_idPais_ENVIO = -1;
            long lng_idProvincia_ENVIO = -1;
            long lng_idMunicipio_ENVIO = -1;
            long lng_idPoblacion_ENVIO = -1;
            string str_Tipo = "";
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {

                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {

                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idInstalacionCabecera = -1;
                        lng_idInstalacionLinea = -1;
                        lng_idCliente = -1;
                        lng_idInstalacionEstado = -1;
                        lng_idAdministrador = -1;
                        lng_idEmpresaInstaladora = -1;
                        lng_idInstalacionEstadoLinea = -1;
                        lng_idPlanMantenimientoCabecera = -1;
                        lng_idInstalaionUso = -1;
                        lng_idTipoContrato = -1;
                        lng_idPais_ENVIO = -1;
                        lng_idProvincia_ENVIO = -1;
                        lng_idMunicipio_ENVIO = -1;
                        lng_idPoblacion_ENVIO = -1;
                        str_Tipo = "";
                        str_AUX = "";
                        #endregion

                        //Tipo
                        str_Tipo = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                        //......................................................................................

                        if (g_dct_ids_MYT_InstalacionesCabecera.ContainsKey(str_AUX))
                        {
                            lng_idInstalacionCabecera = g_dct_ids_MYT_InstalacionesCabecera[str_AUX];
                        }
                        else
                        {
                            lng_idInstalacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idInstalacionCabecera > -1)
                            {
                                g_dct_ids_MYT_InstalacionesCabecera.Add(str_AUX, lng_idInstalacionCabecera);
                            }

                        }


                        //Cabecera
                        if (str_Tipo == "1")
                        {
                            #region Cabecera

                            //Si no existe inserto el registro
                            if (lng_idInstalacionCabecera == -1)
                            {
                                #region CLIENTE
                                // Compruebo si existe el registro en base de datos por el codigo.......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                {
                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                }
                                else
                                {
                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCliente > -1)
                                    {
                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                    }

                                }
                                #endregion

                                if (lng_idCliente>-1)
                                {
                                    #region INSTALACION ESTADO
                                    // Compruebo si existe el registro en base de datos por el codigo.......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_MYT_InstalacionesEstados.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionEstado = g_dct_ids_MYT_InstalacionesEstados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionEstado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionEstado > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesEstados.Add(str_AUX, lng_idInstalacionEstado);
                                        }

                                    }
                                    #endregion

                                    if (lng_idInstalacionEstado > -1)
                                    {
                                        #region ADMINISTRADOR
                                        //Si contiene algo busco el idAdministrador
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                        {
                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MYT_Administradores.ContainsKey(str_AUX))
                                            {
                                                lng_idAdministrador = g_dct_ids_MYT_Administradores[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idAdministrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ADMINISTRADORES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idAdministrador > -1)
                                                {
                                                    g_dct_ids_MYT_Administradores.Add(str_AUX, lng_idAdministrador);
                                                }
                                            }
                                        }
                                        #endregion

                                        #region EMPRESAINSTALADORA
                                        //Si contiene algo busco el idEmpresaInstaladora
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                        {
                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MYT_EmpresasInstaladoras.ContainsKey(str_AUX))
                                            {
                                                lng_idEmpresaInstaladora = g_dct_ids_MYT_EmpresasInstaladoras[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmpresaInstaladora = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_EMPRESASINSTALADORAS_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmpresaInstaladora > -1)
                                                {
                                                    g_dct_ids_MYT_EmpresasInstaladoras.Add(str_AUX, lng_idEmpresaInstaladora);
                                                }
                                            }
                                        }
                                        #endregion

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_DESCRIPCION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDCLIENTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDINSTALACIONESTADO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDADMINISTRADOR + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDEMPRESAINSTALADORA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_OBSERVACIONES + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_FECHA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_GSP_POSICIONLATITUD + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_GPS_POSICIONLONGITUD + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_GPS_ZOOM + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_GPS_TIPOPROVEEDOR +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@codigo," +
                                                            "@descripcion," +
                                                            "@idCliente," +
                                                            "@idInstalacionEstado," +
                                                            "@idAdministrador," +
                                                            "@idEmpresaInstaladora," +
                                                            "@observaciones," +
                                                            "@fecha," +
                                                            "@gps_posicionLatitud," +
                                                            "@gps_posicionLongitud," +
                                                            "@gps_zoom," +
                                                            "@gps_tipoProveedor" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                            new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                            new SqlParameter("@idCliente", lng_idCliente),
                                            new SqlParameter("@idInstalacionEstado", lng_idInstalacionEstado),
                                            lng_idAdministrador>-1
                                            ?   new SqlParameter("@idAdministrador", lng_idAdministrador)
                                            :   new SqlParameter("@idAdministrador",  DBNull.Value),
                                            lng_idEmpresaInstaladora>-1
                                            ?   new SqlParameter("@idEmpresaInstaladora", lng_idEmpresaInstaladora )
                                            :   new SqlParameter("@idEmpresaInstaladora",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                            new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                            ?   new SqlParameter("@gps_posicionLatitud", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                            :   new SqlParameter("@gps_posicionLatitud",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                            ?   new SqlParameter("@gps_posicionLongitud", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                            :   new SqlParameter("@gps_posicionLongitud",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                            ?   new SqlParameter("@gps_zoom", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                            :   new SqlParameter("@gps_zoom",  DBNull.Value),
                                             mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                            ?   new SqlParameter("@gps_tipoProveedor", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                            :   new SqlParameter("@gps_tipoProveedor",  DBNull.Value)

                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                                                                                                                        "               Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        //todo Correcto
                                        else
                                        {
                                            lng_idInstalacionCabecera = mdl_ValorDevuelto_Modelo.Id;

                                            //Añadir al Diccionario
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                            g_dct_ids_MYT_InstalacionesCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDINSTALACIONESTADO),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_IDCLIENTE),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA),
                                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }

                            //GEN_Direcciones ################################################
                            if (lng_idInstalacionCabecera > -1)
                            {
                                #region Direccion ENVIO
                                try
                                {
                                    //Si contiene algo busco el idPais
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Paises.ContainsKey(str_AUX))
                                        {
                                            lng_idPais_ENVIO = g_dct_ids_GEN_Paises[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPais_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_PAISES_CAMPO_CODIGO_ISO2D,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPais_ENVIO > -1)
                                            {
                                                g_dct_ids_GEN_Paises.Add(str_AUX, lng_idPais_ENVIO);
                                            }

                                        }
                                    }


                                    //si existe el registro continuo
                                    if (lng_idPais_ENVIO > -1)
                                    {
                                        //Si contiene algo busco el idProvincia
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Provincias.ContainsKey(str_AUX))
                                            {
                                                lng_idProvincia_ENVIO = g_dct_ids_GEN_Provincias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idProvincia_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_PROVINCIAS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idProvincia_ENVIO > -1)
                                                {
                                                    g_dct_ids_GEN_Provincias.Add(str_AUX, lng_idProvincia_ENVIO);
                                                }

                                            }
                                        }


                                        //si existe el registro continuo
                                        if (lng_idProvincia_ENVIO > -1)
                                        {
                                            //Si contiene algo busco el idMunicipio
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Municipios.ContainsKey(str_AUX))
                                                {
                                                    lng_idMunicipio_ENVIO = g_dct_ids_GEN_Municipios[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMunicipio_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_MUNICIPIOS_CAMPO_CODIGO_INE,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMunicipio_ENVIO > -1)
                                                    {
                                                        g_dct_ids_GEN_Municipios.Add(str_AUX, lng_idMunicipio_ENVIO);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idMunicipio_ENVIO == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }

                                            //Si contiene algo busco el idPoblacion
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Poblaciones.ContainsKey(str_AUX))
                                                {
                                                    lng_idPoblacion_ENVIO = g_dct_ids_GEN_Poblaciones[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPoblacion_ENVIO = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_POBLACION_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPoblacion_ENVIO > -1)
                                                    {
                                                        g_dct_ids_GEN_Poblaciones.Add(str_AUX, lng_idPoblacion_ENVIO);
                                                    }

                                                }

                                                //Si no existe muestro error
                                                if (lng_idPoblacion_ENVIO == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }


                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPAIS + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDMUNICIPIO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPOBLACION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_NOMBREVIA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_CODIGOPOSTAL + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDINSTALACIONCABECERA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_TIPODIRECCION +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@idPais," +
                                                                "@idProvincia," +
                                                                "@idMunicipio," +
                                                                "@idPoblacion," +
                                                                "@nombreVia," +
                                                                "@codigoPostal," +
                                                                "@idInstalacionCabecera," +
                                                                "@tipoDireccion" +
                                                            " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@idPais", lng_idPais_ENVIO),
                                                new SqlParameter("@idProvincia", lng_idProvincia_ENVIO),
                                                lng_idMunicipio_ENVIO > -1
                                                    ?   new SqlParameter("@idMunicipio", lng_idMunicipio_ENVIO)
                                                    :   new SqlParameter("@idMunicipio",  DBNull.Value),
                                                lng_idPoblacion_ENVIO > -1
                                                    ?   new SqlParameter("@idPoblacion", lng_idPoblacion_ENVIO)
                                                    :   new SqlParameter("@idPoblacion",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                    ?   new SqlParameter("@nombreVia", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                    :   new SqlParameter("@nombreVia",  ""),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                    ?   new SqlParameter("@codigoPostal", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                    :   new SqlParameter("@codigoPostal",  ""),
                                                new SqlParameter("@idInstalacionCabecera", lng_idInstalacionCabecera),
                                                new SqlParameter("@tipoDireccion", Variables.G_STR_TIPODIRECCION_ENVIO)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                            }

                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DIRECCIONES_CAMPO_IDPROVINCIA),
                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO_DIRECCION(Variables_TraspasoDatos.G_STR_TIPODIRECCION_ENVIO_TEXTO,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                                                                        ex.Message),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                #endregion
                            }
                            #endregion
                        }
                        //Linea
                        else if (str_Tipo == "2")
                        {
                            if (lng_idInstalacionCabecera>-1)
                            {
                                #region Lineas

                                #region INSTALACION ESTADO
                                // Compruebo si existe el registro en base de datos por el codigo.......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MYT_InstalacionesEstados.ContainsKey(str_AUX))
                                {
                                    lng_idInstalacionEstadoLinea = g_dct_ids_MYT_InstalacionesEstados[str_AUX];
                                }
                                else
                                {
                                    lng_idInstalacionEstadoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESESTADOS_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idInstalacionEstadoLinea > -1)
                                    {
                                        g_dct_ids_MYT_InstalacionesEstados.Add(str_AUX, lng_idInstalacionEstadoLinea);
                                    }

                                }
                                #endregion

                                if (lng_idInstalacionEstadoLinea > -1)
                                {
                                    #region PLANMANTENIMIENTOCABECERA
                                    //Si contiene algo busco el idAdministrador
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null)
                                    {
                                        // Compruebo si existe el registro en base de datos por el codigo.......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MYT_PlanMantenimientosCabeceras.ContainsKey(str_AUX))
                                        {
                                            lng_idPlanMantenimientoCabecera = g_dct_ids_MYT_PlanMantenimientosCabeceras[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPlanMantenimientoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PLANMANTENIMIENTOSCABECERAS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPlanMantenimientoCabecera > -1)
                                            {
                                                g_dct_ids_MYT_PlanMantenimientosCabeceras.Add(str_AUX, lng_idPlanMantenimientoCabecera);
                                            }
                                        }
                                    }
                                    #endregion

                                    #region INSTALACIONESUSO
                                    //Si contiene algo busco el idEmpresaInstaladora
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                    {
                                        // Compruebo si existe el registro en base de datos por el codigo.......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MYT_InstalacionesUsos.ContainsKey(str_AUX))
                                        {
                                            lng_idInstalaionUso = g_dct_ids_MYT_InstalacionesUsos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idInstalaionUso = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACONESUSOS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idInstalaionUso > -1)
                                            {
                                                g_dct_ids_MYT_InstalacionesUsos.Add(str_AUX, lng_idInstalaionUso);
                                            }
                                        }
                                    }
                                    #endregion

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS +
                                                    " (" +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACIONCABECERA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACONESTADO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDPLANMANTENIMIENTOCABECERA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACIONUSO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_FECHAINSTALACION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_FECHAGARANTIA + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_UBICACION + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_OBSERVACIONES + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO + "," +
                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_DESCRIPCION +
                                                    " ) " +
                                                    " OUTPUT INSERTED.id " +
                                                    " VALUES " +
                                                    " ( " +
                                                        "@idInstalacionCabecera," +
                                                        "@idInstalacionEstado," +
                                                        "@idPlanMantenimientoCabecera," +
                                                        "@idInstalacionUso," +
                                                        "@fechaInstalacion," +
                                                        "@fechaGarantia," +
                                                        "@ubicacion," +
                                                        "@observaciones," +
                                                        "@codigo," +
                                                        "@descripcion" +
                                                    " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idInstalacionCabecera", lng_idInstalacionCabecera),
                                        new SqlParameter("@idInstalacionEstado", lng_idInstalacionEstadoLinea),
                                        lng_idPlanMantenimientoCabecera>-1
                                        ?   new SqlParameter("@idPlanMantenimientoCabecera", lng_idPlanMantenimientoCabecera)
                                        :   new SqlParameter("@idPlanMantenimientoCabecera",  DBNull.Value),
                                        lng_idInstalaionUso>-1
                                        ?   new SqlParameter("@idInstalacionUso", lng_idInstalaionUso )
                                        :   new SqlParameter("@idInstalacionUso",  DBNull.Value),
                                        new SqlParameter("@fechaInstalacion", mdl_INTERNO_Tabla_Modelo.Objeto_31),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                        ?   new SqlParameter("@fechaGarantia", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                        :   new SqlParameter("@fechaGarantia",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                        ?   new SqlParameter("@ubicacion", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                        :   new SqlParameter("@ubicacion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                       new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_35),
                                       new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_36),

                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO,
                                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                                                                                                                    "               Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {                                        
                                        //Añadir al Diccionario
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : "") + "_" +
                                                  lng_idInstalacionCabecera;
                                        g_dct_ids_MYT_InstalacionesLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACONESTADO),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }

                                #endregion
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        //Contrato
                        else if (str_Tipo == "3")
                        {
                            if (lng_idInstalacionCabecera > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : "") + "_" +
                                          lng_idInstalacionCabecera;
                                //......................................................................................

                                if (g_dct_ids_MYT_InstalacionesLineas.ContainsKey(str_AUX))
                                {
                                    lng_idInstalacionLinea = g_dct_ids_MYT_InstalacionesLineas[str_AUX];
                                }
                                else
                                {
                                    lng_idInstalacionLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idInstalacionCabecera > -1)
                                    {
                                        g_dct_ids_MYT_InstalacionesLineas.Add(str_AUX, lng_idInstalacionLinea);
                                    }

                                }

                                if (lng_idInstalacionLinea>-1)
                                {
                                    #region CONTRATOS

                                    #region TIPO CONTRATO
                                    // Compruebo si existe el registro en base de datos por el codigo.......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_MYT_TiposContratos.ContainsKey(str_AUX))
                                    {
                                        lng_idTipoContrato = g_dct_ids_MYT_TiposContratos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTipoContrato = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TIPOSCONTRATOS_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTipoContrato > -1)
                                        {
                                            g_dct_ids_MYT_TiposContratos.Add(str_AUX, lng_idTipoContrato);
                                        }

                                    }
                                    #endregion

                                    if (lng_idTipoContrato > -1)
                                    {
                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_IDINSTALACIONLINEA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_IDTIPOCONTRATO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_NUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_DESCRIPCIONA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_FECHAINICIO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_FECHAFIN + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_OBSERVACIONES + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_DURACION + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_DURACIONCALCULO +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idInstalacionLinea," +
                                                            "@idTipoContrato," +
                                                            "@numero," +
                                                            "@descripcion," +
                                                            "@fechaInicio," +
                                                            "@fechaFin," +
                                                            "@observaciones," +
                                                            "@duracion," +
                                                            "@duracionCalculo" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idInstalacionLinea", lng_idInstalacionLinea),
                                        new SqlParameter("@idTipoContrato", lng_idTipoContrato),
                                        new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_21),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_22),
                                        new SqlParameter("@fechaInicio", mdl_INTERNO_Tabla_Modelo.Objeto_23),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                        ?   new SqlParameter("@fechaFin", mdl_INTERNO_Tabla_Modelo.Objeto_24)
                                        :   new SqlParameter("@fechaFin",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                        ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                        :   new SqlParameter("@observaciones",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_26 != null
                                        ?   new SqlParameter("@duracion", mdl_INTERNO_Tabla_Modelo.Objeto_26 )
                                        :   new SqlParameter("@duracion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                        ?   new SqlParameter("@duracionCalculo", mdl_INTERNO_Tabla_Modelo.Objeto_27 )
                                        :   new SqlParameter("@duracionCalculo",  DBNull.Value)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_NUMERO,
                                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim() : ""),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS,
                                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                                                                                                                        "               Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_IDTIPOCONTRATO),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }

                                    #endregion
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS,
                                                                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim() : ""),
                                                                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_NUMERO),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEASCONTRATOS_CAMPO_NUMERO),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }







                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_InstalacionesCabecera), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region MYT_Partes
        public INTERNO_ValorDevuelto_Modelo Insertar_Partes(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            long lng_idParte = -1;
            long lng_idInstalacionCabecera = -1;
            long lng_idInstalacionLinea = -1;
            long lng_idPrioridad = -1;
            long lng_idParteTipo = -1;
            long lng_idParteEstado = -1;
            long lng_idDepartamento = -1;
            long lng_idInspeccion = -1;
            long lng_idEstructuraPartePeticionDatoCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idTecnico = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idDelegacionFactura = -1;
            long lng_idFacturaCabecera = -1;
            long lng_idDelegacionAlbaran= -1;
            long lng_idAlbaranCabecera = -1;
            long lng_idPrevision = -1;
            long lng_idCliente = -1;

            //Trabajos realizados
            long lng_idTerminal_TR = -1;
            long lng_idTecnico_TR = -1;
            long lng_idParteEstado_TR = -1;

            //Lineas
            long lng_idParteLinea = -1;
            long lng_idTipoCompraVenta = -1;
            long lng_idEmbalaje = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_idTecnico_Linea = -1;
            long lng_idTerminal_Linea = -1;
            long lng_idPedidoLinea = -1;
            long lng_idArticulo = -1;
            long lng_idArticuloComodin = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_id_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idRetencionTipo = -1;

            //Notas
            long lng_idTerminal_NT = -1;
            long lng_idTecnico_NT = -1;

            //Protocolos
            long lng_idProtocolo_PR = -1;
            long lng_idProtocoloPregunta_PR = -1;
            long lng_idProtocoloRespuesta_PR = -1;
            long lng_idTerminal_PR = -1;
            long lng_idTecnico_PR = -1;

            //PeticionDatos
            long lng_idEstructuraPartePeticionDatoSeccion_PD = -1;
            long lng_idEstructuraPartePeticionDatoPregunta_PD = -1;
            long lng_idEstructuraPartePeticionDatoRespuesta_PD = -1;
            long lng_idTerminal_PD = -1;
            long lng_idTecnico_PD = -1;

            string str_Tipo = "";
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {

                if (_lst_INTERNO_Tabla_Modelo != null && _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {

                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idParte = -1;
                        lng_idInstalacionCabecera = -1;
                        lng_idInstalacionLinea = -1;
                        lng_idPrioridad = -1;
                        lng_idParteTipo = -1;
                        lng_idParteEstado = -1;
                        lng_idDepartamento = -1;
                        lng_idInspeccion = -1;
                        lng_idEstructuraPartePeticionDatoCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idTecnico = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idDelegacionFactura = -1;
                        lng_idFacturaCabecera = -1;
                        lng_idDelegacionAlbaran= -1;
                        lng_idAlbaranCabecera = -1;
                        lng_idPrevision = -1;
                        lng_idCliente = -1;

                        //Trabajos realizados
                        lng_idTerminal_TR = -1;
                        lng_idTecnico_TR = -1;
                        lng_idParteEstado_TR= -1;

                        //Lineas
                        lng_idParteLinea = -1;
                        lng_idTipoCompraVenta = -1;
                        lng_idEmbalaje = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_idTecnico_Linea = -1;
                        lng_idTerminal_Linea = -1;
                        lng_idPedidoLinea = -1;
                        lng_idArticulo = -1;
                        lng_idArticuloComodin = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_id_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idRetencionTipo = -1;

                        //Notas
                        lng_idTerminal_NT = -1;
                        lng_idTecnico_NT = -1;

                        //Protocolos
                        lng_idProtocolo_PR = -1;
                        lng_idProtocoloPregunta_PR = -1;
                        lng_idProtocoloRespuesta_PR = -1;
                        lng_idTerminal_PR = -1;
                        lng_idTecnico_PR = -1;

                        //PeticionDatos
                        lng_idEstructuraPartePeticionDatoSeccion_PD = -1;
                        lng_idEstructuraPartePeticionDatoPregunta_PD = -1;
                        lng_idEstructuraPartePeticionDatoRespuesta_PD = -1;
                        lng_idTerminal_PD = -1;
                        lng_idTecnico_PD = -1;


                        str_Tipo = "";
                        str_AUX = "";
                        #endregion

                        //Tipo
                        str_Tipo = (mdl_INTERNO_Tabla_Modelo.Objeto_1 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim() : "");

                        //Idparte
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                        if (g_dct_ids_MYT_Partes.ContainsKey(str_AUX))
                        {
                            lng_idParte = g_dct_ids_MYT_Partes[str_AUX];
                        }
                        else
                        {
                            lng_idParte = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idParte > -1)
                            {
                                g_dct_ids_MYT_Partes.Add(str_AUX, lng_idParte);
                            }
                        }

                        //idEmpresa
                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : "");
                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : ""),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }
                        }

                        #region PARTES
                        if (str_Tipo == "1")
                        {
                            //Si no existe inserto el registro
                            if (lng_idParte == -1)
                            {
                                #region CLIENTE
                                // Compruebo si existe el registro en base de datos por el codigo.......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                {
                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                }
                                else
                                {
                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCliente > -1)
                                    {
                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                    }

                                }
                                #endregion

                                if (lng_idCliente > -1)
                                {
                                    #region INSTALACION CABECERA
                                    // Compruebo si existe el registro en base de datos por el codigo.......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "");
                                    //......................................................................................
                                    
                                    if (g_dct_ids_MYT_InstalacionesCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionCabecera = g_dct_ids_MYT_InstalacionesCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionCabecera > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesCabecera.Add(str_AUX, lng_idInstalacionCabecera);
                                        }

                                    }
                                    #endregion

                                    if (lng_idInstalacionCabecera > -1)
                                    {
                                        #region PRIORIDAD
                                        // Compruebo si existe el registro en base de datos por el codigo.......................
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Prioridades.ContainsKey(str_AUX))
                                        {
                                            lng_idPrioridad = g_dct_ids_MAE_Prioridades[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idPrioridad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_PRIORIDADES_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idPrioridad > -1)
                                            {
                                                g_dct_ids_MAE_Prioridades.Add(str_AUX, lng_idPrioridad);
                                            }

                                        }
                                        #endregion

                                        if (lng_idPrioridad > -1)
                                        {
                                            #region PARTETIPO
                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : "");
                                            //......................................................................................

                                            if (g_dct_ids_MYT_PartesTipos.ContainsKey(str_AUX))
                                            {
                                                lng_idParteTipo = g_dct_ids_MYT_PartesTipos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idParteTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESTIPOS,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESTIPOS_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESTIPOS_CAMPO_CODIGO,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idParteTipo > -1)
                                                {
                                                    g_dct_ids_MYT_PartesTipos.Add(str_AUX, lng_idParteTipo);
                                                }

                                            }
                                            #endregion

                                            if (lng_idParteTipo > -1)
                                            {
                                                #region PARTEESTADO
                                                // Compruebo si existe el registro en base de datos por el codigo.......................
                                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : "");
                                                //......................................................................................

                                                if (g_dct_ids_MYT_PartesEstados.ContainsKey(str_AUX))
                                                {
                                                    lng_idParteEstado= g_dct_ids_MYT_PartesEstados[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idParteEstado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idParteEstado > -1)
                                                    {
                                                        g_dct_ids_MYT_PartesEstados.Add(str_AUX, lng_idParteEstado);
                                                    }

                                                }
                                                #endregion

                                                if (lng_idParteEstado > -1)
                                                {
                                                    if (lng_idEmpresa > -1)
                                                    {
                                                        #region INSTALACIONLINEA
                                                        //Si contiene algo busco el idInstalacionLinea
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                                                      lng_idInstalacionCabecera;
                                                            //......................................................................................

                                                            if (g_dct_ids_MYT_InstalacionesLineas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idInstalacionLinea = g_dct_ids_MYT_InstalacionesLineas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idInstalacionLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACIONCABECERA,
                                                                                                                                     lng_idInstalacionCabecera.ToString(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idInstalacionCabecera > -1)
                                                                {
                                                                    g_dct_ids_MYT_InstalacionesLineas.Add(str_AUX, lng_idInstalacionLinea);
                                                                }

                                                            }
                                                        }
                                                        #endregion

                                                        #region DEPARTAMENTO
                                                        //Si contiene algo busco el idDepartamento
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_CTA_Departamentos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idDepartamento = g_dct_ids_CTA_Departamentos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idDepartamento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_DEPARTAMENTOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idDepartamento > -1)
                                                                {
                                                                    g_dct_ids_CTA_Departamentos.Add(str_AUX, lng_idDepartamento);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region INSPECCION
                                                        //Si contiene algo busco el idInspeccion
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MYT_Inspecciones.ContainsKey(str_AUX))
                                                            {
                                                                lng_idInspeccion = g_dct_ids_MYT_Inspecciones[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idInspeccion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSPECCIONES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSPECCIONES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_INSPECCIONES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idInspeccion > -1)
                                                                {
                                                                    g_dct_ids_MYT_Inspecciones.Add(str_AUX, lng_idInspeccion);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region ESTRUCTURAPARTEPETICIONDATOSCABECERA
                                                        //Si contiene algo busco el idEstructuraPartePeticionDatoCabecera
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEstructuraPartePeticionDatoCabecera = g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEstructuraPartePeticionDatoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEstructuraPartePeticionDatoCabecera > -1)
                                                                {
                                                                    g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera.Add(str_AUX, lng_idEstructuraPartePeticionDatoCabecera);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region TECNICO
                                                        //Si contiene algo busco el idTecnico
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idTecnico = g_dct_ids_MYT_Tecnicos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idTecnico = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idTecnico > -1)
                                                                {
                                                                    g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region MONEDA
                                                        //Si contiene algo busco el idMoneda
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_19 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idMoneda > -1)
                                                                {
                                                                    g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region IMPUESTOCABECERA
                                                        //Si contiene algo busco el idMoneda
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                                            {
                                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idImpuestoCabecera > -1)
                                                                {
                                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region DELEGACIONFACTURA
                                                        //Si contiene algo busco el idMoneda
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                            {
                                                                lng_idDelegacionFactura = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idDelegacionFactura = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idDelegacionFactura > -1)
                                                                {
                                                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacionFactura);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region FACTURASCABECERA
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString() : "") + "_" +
                                                                    lng_idDelegacionFactura.ToString().Trim() + "_" +
                                                                    lng_idEmpresa.ToString().Trim() +
                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? ("_" + mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString()) : "");

                                                        if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            //Tiene Fecha
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null && mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim().Length>0)
                                                            {
                                                                lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(   Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                        lng_idDelegacionFactura.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                            }
                                                            //No tiene Fecha 
                                                            else
                                                            {
                                                                lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                    lng_idDelegacionFactura.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                            }

                                                            //Añadir al Diccionario
                                                            if (lng_idFacturaCabecera > -1)
                                                            {
                                                                g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                                            }

                                                        }
                                                        #endregion

                                                        #region DELEGACIONALBARAN
                                                        //Si contiene algo busco el idMoneda
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                            {
                                                                lng_idDelegacionAlbaran = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idDelegacionAlbaran = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idDelegacionAlbaran > -1)
                                                                {
                                                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacionAlbaran);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        #region ALBARANESCABECERA
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString() : "") + "_" +
                                                                    lng_idDelegacionAlbaran.ToString().Trim() + "_" +
                                                                    lng_idEmpresa.ToString().Trim() +
                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ? ("_" + mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString()) : "");

                                                        if (g_dct_ids_VTA_AlbaranesCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idAlbaranCabecera = g_dct_ids_VTA_AlbaranesCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            //Tiene Fecha
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null && mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim().Length > 0)
                                                            {
                                                                lng_idAlbaranCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                        lng_idDelegacionAlbaran.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                            }
                                                            //No tiene Fecha 
                                                            else
                                                            {
                                                                lng_idAlbaranCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                    lng_idDelegacionAlbaran.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                            }

                                                            //Añadir al Diccionario
                                                            if (lng_idAlbaranCabecera > -1)
                                                            {
                                                                g_dct_ids_VTA_AlbaranesCabeceras.Add(str_AUX, lng_idAlbaranCabecera);
                                                            }

                                                        }
                                                        #endregion

                                                        #region PREVISIONES
                                                        //Si contiene algo busco el idMoneda
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                                        {
                                                            // Compruebo si existe el registro en base de datos por el codigo.......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MYT_Previsiones_Cabecera.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPrevision = g_dct_ids_MYT_Previsiones_Cabecera[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPrevision = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PREVISIONES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PREVISIONES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PREVISIONES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPrevision > -1)
                                                                {
                                                                    g_dct_ids_MYT_Previsiones_Cabecera.Add(str_AUX, lng_idPrevision);
                                                                }
                                                            }
                                                        }
                                                        #endregion

                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES +
                                                                        " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_CODIGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDINSTALACIONCABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDINSTALACIONLINEA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPRIORIDAD + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPARTETIPO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPARTEESTADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDDEPARTAMENTO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDINSPECCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDESTRUCTURAPARTEPETICIONDATOCABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_FECHAHORARECEPCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_FECHAHORACITA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TEXTOCITA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_INCIDENCIAS + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_OBSERVACIONES + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_GUID + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_FECHABORRADO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDEMPRESA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDTECNICO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDMONEDA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_RECARGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_BRUTO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_IMPUESTO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_RECARGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDFACTURACABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDALBARANCABECERA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPREVISION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_NOTAIMPORTANTE + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_APLICARRETENCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_RETENCION_PORCENTAJE + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_RETENCION_VALOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_RETENCION_BASE + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_DESCUENTOFINALALBARAN + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_RETENCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_TOTAL_FINAL +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                            "@codigo," +
                                                                            "@idInstalacionCabecera," +
                                                                            "@idInstalacionLinea," +
                                                                            "@idPrioridad," +
                                                                            "@idParteTipo," +
                                                                            "@idParteEstado," +
                                                                            "@idDepartamento," +
                                                                            "@idInspeccion," +
                                                                            "@idEstructuraPartePeticionDatoCabecera," +
                                                                            "@fechaHoraRecepcion," +
                                                                            "@fechaHoraCita," +
                                                                            "@textoCita," +
                                                                            "@incidencias," +
                                                                            "@observaciones," +
                                                                            "@guid," +
                                                                            "@fechaBorrado," +
                                                                            "@idEmpresa," +
                                                                            "@idTecnico," +
                                                                            "@idMoneda," +
                                                                            "@idImpuestoCabecera," +
                                                                            "@recargo," +
                                                                            "@total_bruto," +
                                                                            "@total_baseImponible," +
                                                                            "@total_impuesto," +
                                                                            "@total_recargo," +
                                                                            "@total," +
                                                                            "@idFacturaCabecera," +
                                                                            "@idAlbaranCabecera," +
                                                                            "@idPrevision," +
                                                                            "@notaImportante," +
                                                                            "@descuentoProntoPago," +
                                                                            "@descuentoFinalFactura," +
                                                                            "@descuentoFinalAlbaran," +
                                                                            "@aplicarRetencion," +
                                                                            "@retencion_Porcentaje," +
                                                                            "@retencion_Valor," +
                                                                            "@retencion_Base," +
                                                                            "@total_descuentoProntoPago," +
                                                                            "@total_descuentoFinalFactura," +
                                                                            "@total_descuentoFinalAlbaran," +
                                                                            "@total_retencion," +
                                                                            "@total_Final" +
                                                                        " ) ";

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                            new SqlParameter("@idInstalacionCabecera", lng_idInstalacionCabecera),
                                                            lng_idInstalacionLinea>-1
                                                            ?   new SqlParameter("@idInstalacionLinea", lng_idInstalacionLinea)
                                                            :   new SqlParameter("@idInstalacionLinea",  DBNull.Value),
                                                            new SqlParameter("@idPrioridad", lng_idPrioridad),
                                                            new SqlParameter("@idParteTipo", lng_idParteTipo),
                                                            new SqlParameter("@idParteEstado", lng_idParteEstado),
                                                            lng_idDepartamento>-1
                                                            ?   new SqlParameter("@idDepartamento", lng_idDepartamento)
                                                            :   new SqlParameter("@idDepartamento",  DBNull.Value),
                                                            lng_idInspeccion>-1
                                                            ?   new SqlParameter("@idInspeccion", lng_idInspeccion)
                                                            :   new SqlParameter("@idInspeccion",  DBNull.Value),
                                                            lng_idEstructuraPartePeticionDatoCabecera>-1
                                                            ?   new SqlParameter("@idEstructuraPartePeticionDatoCabecera", lng_idEstructuraPartePeticionDatoCabecera)
                                                            :   new SqlParameter("@idEstructuraPartePeticionDatoCabecera",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12 != null
                                                            ?   new SqlParameter("@fechaHoraRecepcion", mdl_INTERNO_Tabla_Modelo.Objeto_12 )
                                                            :   new SqlParameter("@fechaHoraRecepcion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                            ?   new SqlParameter("@fechaHoraCita", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                            :   new SqlParameter("@fechaHoraCita",  DBNull.Value),
                                                             mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                            ?   new SqlParameter("@textoCita", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                            :   new SqlParameter("@textoCita",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                                            ?   new SqlParameter("@incidencias", mdl_INTERNO_Tabla_Modelo.Objeto_15 )
                                                            :   new SqlParameter("@incidencias",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                            new SqlParameter("@guid",  DBNull.Value),
                                                            new SqlParameter("@fechaBorrado",  DBNull.Value),
                                                            new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                            lng_idTecnico>-1
                                                            ?   new SqlParameter("@idTecnico", lng_idTecnico)
                                                            :   new SqlParameter("@idTecnico",  DBNull.Value),
                                                            lng_idMoneda>-1
                                                            ?   new SqlParameter("@idMoneda", lng_idMoneda)
                                                            :   new SqlParameter("@idMoneda",  DBNull.Value),
                                                            lng_idImpuestoCabecera>-1
                                                            ?   new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera)
                                                            :   new SqlParameter("@idImpuestoCabecera",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                                            new SqlParameter("@total_bruto",  DBNull.Value),
                                                            new SqlParameter("@total_baseImponible",  DBNull.Value),
                                                            new SqlParameter("@total_impuesto",  DBNull.Value),
                                                            new SqlParameter("@total_recargo",  DBNull.Value),
                                                            new SqlParameter("@total",  DBNull.Value),
                                                            lng_idFacturaCabecera>-1
                                                            ?   new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera)
                                                            :   new SqlParameter("@idFacturaCabecera",  DBNull.Value),
                                                            lng_idAlbaranCabecera>-1
                                                            ?   new SqlParameter("@idAlbaranCabecera", lng_idAlbaranCabecera)
                                                            :   new SqlParameter("@idAlbaranCabecera",  DBNull.Value),
                                                            lng_idPrevision>-1
                                                            ?   new SqlParameter("@idPrevision", lng_idPrevision)
                                                            :   new SqlParameter("@idPrevision",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                            ?   new SqlParameter("@notaImportante", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                            :   new SqlParameter("@notaImportante",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                            ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                            :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                            :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                            ?   new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                            :   new SqlParameter("@descuentoFinalAlbaran",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                            ?   new SqlParameter("@aplicarRetencion", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                            :   new SqlParameter("@aplicarRetencion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                            ?   new SqlParameter("@retencion_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                            :   new SqlParameter("@retencion_Porcentaje",  DBNull.Value),
                                                            new SqlParameter("@retencion_Valor",  DBNull.Value),
                                                            new SqlParameter("@retencion_Base",  DBNull.Value),
                                                            new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                                            new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                                            new SqlParameter("@total_descuentoFinalAlbaran",  DBNull.Value),
                                                            new SqlParameter("@total_retencion",  DBNull.Value),
                                                            new SqlParameter("@total_Final",  DBNull.Value)
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_CODIGO,
                                                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                                                        "               Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        //todo Correcto
                                                        else
                                                        {
                                                            lng_idParte = mdl_ValorDevuelto_Modelo.Id;

                                                            //Añadir al Diccionario
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "");
                                                            g_dct_ids_MYT_Partes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : ""),
                                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDEMPRESA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPARTEESTADO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPARTETIPO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDPRIORIDAD),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_IDINSTALACIONCABECERA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                   "idCliente"),
                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_CAMPO_CODIGO,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES),
                                                                                                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }                           
                        }
                        #endregion
                        #region TRABAJOSREALIZADOS
                        else if (str_Tipo == "2")
                        {
                            if (lng_idParte > -1)
                            {
                                #region idInstalacionCabecera
                                //Si contiene algo busco el idInstalacionCabecera
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                {
                                    // Compruebo si existe el registro en base de datos por el codigo.......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MYT_InstalacionesCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionCabecera = g_dct_ids_MYT_InstalacionesCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionCabecera > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesCabecera.Add(str_AUX, lng_idInstalacionCabecera);
                                        }

                                    }
                                }
                                #endregion

                                #region idInstalacionLinea
                                //Si contiene algo busco el idInstalacionLinea
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                              lng_idInstalacionCabecera;
                                    //......................................................................................

                                    if (g_dct_ids_MYT_InstalacionesLineas.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionLinea = g_dct_ids_MYT_InstalacionesLineas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACIONCABECERA,
                                                                                                             lng_idInstalacionCabecera.ToString(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionCabecera > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesLineas.Add(str_AUX, lng_idInstalacionLinea);
                                        }

                                    }
                                }
                                #endregion

                                #region idTerminal
                                //Si contiene algo busco el idTerminal
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() + "_" +
                                        lng_idEmpresa;
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Terminales.ContainsKey(str_AUX))
                                    {
                                        lng_idTerminal_TR = g_dct_ids_GEN_Terminales[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTerminal_TR = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTerminal_TR > -1)
                                        {
                                            g_dct_ids_GEN_Terminales.Add(str_AUX, lng_idTerminal_TR);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idTerminal_TR == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDTERMINAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                #endregion

                                #region idTecnico
                                //Si contiene algo busco el idTecnico
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                    {
                                        lng_idTecnico_TR = g_dct_ids_MYT_Tecnicos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTecnico_TR = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTecnico_TR > -1)
                                        {
                                            g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico_TR);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idTecnico_TR == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDTECNICO),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                #endregion

                                #region idParteEstado
                                //Si contiene algo busco el idParteEstado
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_40 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MYT_PartesEstados.ContainsKey(str_AUX))
                                    {
                                        lng_idParteEstado_TR = g_dct_ids_MYT_PartesEstados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idParteEstado_TR = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idParteEstado_TR > -1)
                                        {
                                            g_dct_ids_MYT_PartesEstados.Add(str_AUX, lng_idParteEstado_TR);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idParteEstado_TR == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDPARTEESTADO),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                #endregion

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS +
                                                " (" +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDPARTE + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDTERMINAL + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_FECHAHORA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_TRABAJOREALIZADO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_DURACIONSEGUNDOS + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_GUID + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_FECHABORRADO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_GPS_POSICIONLATITUD + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_GPS_POSICIONLONGITUD + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_GPS_ZOOM + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_GPS_TIPOPROVEEDOR + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDTECNICO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDINSTALACIONCABECERA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDINSTALACIONLINEA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_IDPARTEESTADO +
                                                " ) " +
                                                " OUTPUT INSERTED.id " +
                                                " VALUES " +
                                                " ( " +
                                                    "@idParte," +
                                                    "@idTerminal," +
                                                    "@fechaHora," +
                                                    "@trabajoRealizado," +
                                                    "@duracionSegundos," +
                                                    "@guid," +
                                                    "@fechaBorrado," +
                                                    "@gps_posicionLatitud," +
                                                    "@gps_posicionLongitud," +
                                                    "@gps_zoom," +
                                                    "@gps_tipoProveedor," +
                                                    "@idTecnico," +
                                                    "@idInstalacionCabecera," +
                                                    "@idInstalacionLinea," +
                                                    "@idParteEstado" +
                                                " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@idParte", lng_idParte),
                                lng_idTerminal_TR > -1
                                    ?   new SqlParameter("@idTerminal", lng_idTerminal_TR )
                                    :   new SqlParameter("@idTerminal",  DBNull.Value),
                                new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_36),
                                mdl_INTERNO_Tabla_Modelo.Objeto_37 != null
                                ?   new SqlParameter("@trabajoRealizado", mdl_INTERNO_Tabla_Modelo.Objeto_37)
                                :   new SqlParameter("@trabajoRealizado",  ""),
                                mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                ?   new SqlParameter("@duracionSegundos", mdl_INTERNO_Tabla_Modelo.Objeto_38)
                                :   new SqlParameter("@duracionSegundos",   DBNull.Value),
                                new SqlParameter("@guid", ""),
                                new SqlParameter("@fechaBorrado", DBNull.Value),
                                new SqlParameter("@gps_posicionLatitud", DBNull.Value),
                                new SqlParameter("@gps_posicionLongitud", DBNull.Value),
                                new SqlParameter("@gps_zoom", DBNull.Value),
                                new SqlParameter("@gps_tipoProveedor", DBNull.Value),
                                lng_idTecnico_TR > -1
                                    ?   new SqlParameter("@idTecnico", lng_idTecnico_TR )
                                    :   new SqlParameter("@idTecnico",  DBNull.Value),
                                lng_idInstalacionCabecera > -1
                                    ?   new SqlParameter("@idInstalacionCabecera", lng_idInstalacionCabecera )
                                    :   new SqlParameter("@idInstalacionCabecera",  DBNull.Value),
                                lng_idInstalacionLinea > -1
                                    ?   new SqlParameter("@idInstalacionLinea", lng_idInstalacionLinea )
                                    :   new SqlParameter("@idInstalacionLinea",  DBNull.Value),
                                lng_idParteEstado_TR > -1
                                    ?   new SqlParameter("@idParteEstado", lng_idParteEstado_TR )
                                    :   new SqlParameter("@idParteEstado",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_FECHAHORA,
                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS,
                                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                                "               Nº linea:" + int_Contador_Linea_Excel);
                                }
        


                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_TRABAJOSREALIZADOS_CAMPO_FECHAHORA),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion
                        #region PARTESLINEAS
                        else if (str_Tipo == "3")
                        {
                            if (lng_idParte > -1)
                            {
                                #region  idTipoCompraVenta
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                {
                                    lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                }
                                else
                                {
                                    lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_45.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idTipoCompraVenta > -1)
                                    {
                                        g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                    }

                                }

                                #endregion

                                //si existe el registro continuo
                                if (lng_idTipoCompraVenta > -1)
                                {
                                    #region idEmbalaje
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                    {
                                        lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEmbalaje > -1)
                                        {
                                            g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idEmbalaje > -1)
                                    {
                                        #region idEmbalaje_EmbalajePrincipal
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_64.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_64.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                        {
                                            #region idNomenclaturaPrecio
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                            {
                                                lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idNomenclaturaPrecio > -1)
                                                {
                                                    g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                                }

                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                #region idParteLineas
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_42 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim() : "" +
                                                          lng_idParte;
                                                //......................................................................................

                                                if (g_dct_ids_MYT_PartesLineas.ContainsKey(str_AUX))
                                                {
                                                    lng_idParteLinea = g_dct_ids_MYT_PartesLineas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idParteLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDPARTE,
                                                                                                                                lng_idParte.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_NUMERO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_42 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idParteLinea > -1)
                                                    {
                                                        g_dct_ids_MYT_PartesLineas.Add(str_AUX, lng_idParteLinea);
                                                    }
                                                }
                                                #endregion

                                                //si no existe inserto
                                                if (lng_idParteLinea == -1)
                                                {
                                                    #region idTecnico
                                                    //Si contiene algo busco el idTecnico
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_43 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idTecnico_Linea = g_dct_ids_MYT_Tecnicos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idTecnico_Linea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idTecnico_Linea > -1)
                                                            {
                                                                g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico_Linea);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idTecnico_Linea == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTECNICO),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idTerminal
                                                    //Si contiene algo busco el idTerminal
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim() +"_" + 
                                                            lng_idEmpresa;
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_Terminales.ContainsKey(str_AUX))
                                                        {
                                                            lng_idTerminal_Linea = g_dct_ids_GEN_Terminales[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idTerminal_Linea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idTerminal_Linea > -1)
                                                            {
                                                                g_dct_ids_GEN_Terminales.Add(str_AUX, lng_idTerminal_Linea);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idTerminal_Linea == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTERMINAL),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idArticulo
                                                    //Si contiene algo busco el idArticulo
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_46 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idArticulo > -1)
                                                            {
                                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idArticulo == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_46.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDARTICULO),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idArticuloComodin
                                                    //Si contiene algo busco el idArticuloComodin
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_47 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_ArticulosComodin.ContainsKey(str_AUX))
                                                        {
                                                            lng_idArticuloComodin = g_dct_ids_MAE_ArticulosComodin[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idArticuloComodin = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idArticuloComodin > -1)
                                                            {
                                                                g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, lng_idArticuloComodin);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idArticuloComodin == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_47.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDARTICULOCOMODIN),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idEmbalaje_SegundaUnidad
                                                    //Si contiene algo busco el idEmbalaje_SegundaUnidad
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_55 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmbalaje_SegundaUnidad > -1)
                                                            {
                                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idEmbalaje_SegundaUnidad == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDEMBALAJE),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);



                                                        }
                                                    }
                                                    #endregion

                                                    #region idImpuestoTipo
                                                    //Si contiene algo busco el idImpuestoTipo
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_62 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idImpuestoTipo > -1)
                                                            {
                                                                g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idImpuestoTipo == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_62.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);



                                                        }
                                                    }
                                                    #endregion

                                                    #region id_Padre
                                                    //Si contiene algo busco el id_Padre
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim() : "") + "_" +
                                                                  lng_idParte.ToString().Trim() ;
                                                        //......................................................................................

                                                        if (g_dct_ids_MYT_PartesLineas.ContainsKey(str_AUX))
                                                        {
                                                            lng_id_Padre = g_dct_ids_MYT_PartesLineas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_id_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDPARTE,
                                                                                                                                lng_idParte.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_NUMERO,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_id_Padre > -1)
                                                            {
                                                                g_dct_ids_MYT_PartesLineas.Add(str_AUX, lng_id_Padre);
                                                            }

                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_id_Padre == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_ID_PADRE),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);



                                                        }

                                                    }
                                                    #endregion

                                                    #region idEmbalaje_EmbalajePrincipal_SegundaUnidad
                                                    //Si contiene algo busco el idEmbalaje_EmbalajePrincipal_SegundaUnidad
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_70 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                            {
                                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idRetencionTipo
                                                    //Si contiene algo busco el idRetencionTipo
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_71 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idRetencionTipo = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idRetencionTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idRetencionTipo > -1)
                                                            {
                                                                g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idRetencionTipo == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDRETENCIONTIPO),
                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS +
                                                                " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDPARTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_FECHAHORA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_NUMERO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTECNICO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTERMINAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTIPOCOMPRAVENTA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDPEDIDOLINEA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDARTICULO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDARTICULOCOMODIN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_DESCRIPCIONARTICULOCOMODIN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_CANTIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_OPERACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_PRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IMPORTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_ID_PADRE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_GUID + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_FECHABORRADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDRETENCIONTIPO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                    "@idParte," +
                                                                    "@fechaHora," +
                                                                    "@numero," +
                                                                    "@idTecnico," +
                                                                    "@idTerminal," +
                                                                    "@idTipoCompraVenta," +
                                                                    "@idPedidoLinea," +
                                                                    "@idArticulo," +
                                                                    "@idArticuloComodin," +
                                                                    "@descripcionArticuloComodin," +
                                                                    "@cantidad," +
                                                                    "@idEmbalaje," +
                                                                    "@relacion," +
                                                                    "@operacion," +
                                                                    "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                    "@segundaUnidad_relacion," +
                                                                    "@segundaUnidad_idEmbalaje," +
                                                                    "@segundaUnidad_cantidad," +
                                                                    "@idNomenclaturaPrecio," +
                                                                    "@precio," +
                                                                    "@numeroRedondeo," +
                                                                    "@descuentoGeneral," +
                                                                    "@importe," +
                                                                    "@idImpuestoTipo," +
                                                                    "@id_Padre," +
                                                                    "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                    "@embalajePrincipalDelArticulo_relacion," +
                                                                    "@embalajePrincipalDelArticulo_operacion," +
                                                                    "@embalajePrincipalDelArticulo_precio," +
                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje," +
                                                                    "@guid," +
                                                                    "@fechaBorrado," +
                                                                            "@idRetencionTipo" +

                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                            new SqlParameter("@idParte", lng_idParte),
                                                            new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_41  ),
                                                            new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_42  ),
                                                            lng_idTecnico_Linea > -1
                                                                ?   new SqlParameter("@idTecnico", lng_idTecnico_Linea )
                                                                :   new SqlParameter("@idTecnico",  DBNull.Value),
                                                            lng_idTerminal_Linea > -1
                                                                ?   new SqlParameter("@idTerminal", lng_idTerminal_Linea )
                                                                :   new SqlParameter("@idTerminal",  DBNull.Value),
                                                            new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta),
                                                            lng_idPedidoLinea > -1
                                                                ?   new SqlParameter("@idPedidoLinea", lng_idPedidoLinea )
                                                                :   new SqlParameter("@idPedidoLinea",  DBNull.Value),
                                                            lng_idArticulo > -1
                                                                ?   new SqlParameter("@idArticulo", lng_idArticulo )
                                                                :   new SqlParameter("@idArticulo",  DBNull.Value),
                                                            lng_idArticuloComodin > -1
                                                                ?   new SqlParameter("@idArticuloComodin", lng_idArticuloComodin )
                                                                :   new SqlParameter("@idArticuloComodin",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                                                ?   new SqlParameter("@descripcionArticuloComodin", mdl_INTERNO_Tabla_Modelo.Objeto_59  )
                                                                :   new SqlParameter("@descripcionArticuloComodin",  DBNull.Value),
                                                            new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_62),
                                                            new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                            new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_64),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                                                ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                                                :   new SqlParameter("@operacion",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_66 != null
                                                                ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_66 )
                                                                :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                                                ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                                                :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                            lng_idEmbalaje_SegundaUnidad > -1
                                                                ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                                :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                                                ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                                                :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                            new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                            new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_71),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                                                ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                                                :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                                                ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                                                :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                                                ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                                                :   new SqlParameter("@importe",  DBNull.Value),
                                                            lng_idImpuestoTipo > -1
                                                                ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                                :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                            lng_id_Padre > -1
                                                                ?   new SqlParameter("@id_Padre", lng_id_Padre )
                                                                :   new SqlParameter("@id_Padre",  DBNull.Value),
                                                            new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                            new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_78),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_79!= null
                                                                ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                                                :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                            new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_80 ),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                                                ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                                                :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                                                ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                                                :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                            lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                                ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                                :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value),
                                                            new SqlParameter("@guid", ""),
                                                            new SqlParameter("@fechaBorrado", DBNull.Value),
                                                            lng_idRetencionTipo > -1
                                                                ?   new SqlParameter("@idRetencionTipo", lng_idRetencionTipo )
                                                                :   new SqlParameter("@idRetencionTipo",  DBNull.Value),
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_NUMERO,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_42 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                        
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idParteLinea = mdl_ValorDevuelto_Modelo.Id;

                                                        str_AUX =(mdl_INTERNO_Tabla_Modelo.Objeto_42 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim() : "") + "_" +
                                                                 lng_idParte.ToString().Trim() ;
                                                        


                                                        g_dct_ids_MYT_PartesLineas.Add(str_AUX, lng_idParteLinea);
                                                    }

                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_70 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_77 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") ,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDEMBALAJE),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO( (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_51 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDTIPOCOMPRAVENTA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESLINEAS_CAMPO_IDPARTE),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion
                        #region NOTAS
                        else if (str_Tipo == "4")
                        {
                            if (lng_idParte > -1)
                            {
                                #region idInstalacionCabecera
                                //Si contiene algo busco el idInstalacionCabecera
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                {
                                    // Compruebo si existe el registro en base de datos por el codigo.......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MYT_InstalacionesCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionCabecera = g_dct_ids_MYT_InstalacionesCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESCABECERA_CAMPO_CODIGO,
                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionCabecera > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesCabecera.Add(str_AUX, lng_idInstalacionCabecera);
                                        }

                                    }
                                }
                                #endregion

                                #region idInstalacionLinea
                                //Si contiene algo busco el idInstalacionLinea
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" +
                                              lng_idInstalacionCabecera;
                                    //......................................................................................

                                    if (g_dct_ids_MYT_InstalacionesLineas.ContainsKey(str_AUX))
                                    {
                                        lng_idInstalacionLinea = g_dct_ids_MYT_InstalacionesLineas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idInstalacionLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_CODIGO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_MYT_INSTALACIONESLINEAS_CAMPO_IDINSTALACIONCABECERA,
                                                                                                             lng_idInstalacionCabecera.ToString(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idInstalacionCabecera > -1)
                                        {
                                            g_dct_ids_MYT_InstalacionesLineas.Add(str_AUX, lng_idInstalacionLinea);
                                        }

                                    }
                                }
                                #endregion

                                #region idTerminal
                                //Si contiene algo busco el idTerminal
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_73 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim() + "_" +
                                        lng_idEmpresa;
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Terminales.ContainsKey(str_AUX))
                                    {
                                        lng_idTerminal_NT = g_dct_ids_GEN_Terminales[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTerminal_NT = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTerminal_NT > -1)
                                        {
                                            g_dct_ids_GEN_Terminales.Add(str_AUX, lng_idTerminal_NT);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idTerminal_NT == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_73.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDTERMINAL),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                #endregion

                                #region idTecnico
                                //Si contiene algo busco el idTecnico
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_72 != null)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                    {
                                        lng_idTecnico_NT = g_dct_ids_MYT_Tecnicos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTecnico_NT = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTecnico_NT > -1)
                                        {
                                            g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico_NT);
                                        }

                                    }


                                    //Si no existe muestro error
                                    if (lng_idTecnico_NT == -1)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDTECNICO),
                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                #endregion

                               

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS +
                                                " (" +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDPARTE + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDTECNICO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDTERMINAL + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_FECHAHORA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_NOTA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_GUID + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_FECHABORRADO + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDINSTALACIONCABECERA + "," +
                                                    Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_IDINSTALACIONLINEA + 
                                                " ) " +
                                                " OUTPUT INSERTED.id " +
                                                " VALUES " +
                                                " ( " +
                                                    "@idParte," +
                                                    "@idTecnico," +
                                                    "@idTerminal," +
                                                    "@fechaHora," +
                                                    "@nota," +
                                                    "@guid," +
                                                    "@fechaBorrado," +
                                                    "@idInstalacionCabecera," +
                                                    "@idInstalacionLinea" +
                                                " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                new SqlParameter("@idParte", lng_idParte),
                                lng_idTecnico_NT > -1
                                    ?   new SqlParameter("@idTecnico", lng_idTecnico_NT )
                                    :   new SqlParameter("@idTecnico",  DBNull.Value),
                                lng_idTerminal_NT > -1
                                    ?   new SqlParameter("@idTerminal", lng_idTerminal_NT )
                                    :   new SqlParameter("@idTerminal",  DBNull.Value),
                                new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_74),
                                mdl_INTERNO_Tabla_Modelo.Objeto_75 != null
                                ?   new SqlParameter("@nota", mdl_INTERNO_Tabla_Modelo.Objeto_75)
                                :   new SqlParameter("@nota",  ""),
                                new SqlParameter("@guid", ""),
                                new SqlParameter("@fechaBorrado", DBNull.Value),                               
                                lng_idInstalacionCabecera > -1
                                    ?   new SqlParameter("@idInstalacionCabecera", lng_idInstalacionCabecera )
                                    :   new SqlParameter("@idInstalacionCabecera",  DBNull.Value),
                                lng_idInstalacionLinea > -1
                                    ?   new SqlParameter("@idInstalacionLinea", lng_idInstalacionLinea )
                                    :   new SqlParameter("@idInstalacionLinea",  DBNull.Value),
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS_CAMPO_FECHAHORA,
                                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS,
                                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                                "               Nº linea:" + int_Contador_Linea_Excel);
                                }



                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_NOTAS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_74 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_74.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTESESTADOS_CAMPO_CODIGO),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion
                        #region PROTOCOLOS
                        else if (str_Tipo == "5")
                        {
                            if (lng_idParte > -1)
                            {
                                #region  idProtocolo
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_81.ToString().Trim();
                                //......................................................................................

                                if (str_AUX!=null && str_AUX.Trim().Length>0)
                                {
                                    if (g_dct_ids_MYT_Protocolos.ContainsKey(str_AUX))
                                    {
                                        lng_idProtocolo_PR = g_dct_ids_MYT_Protocolos[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idProtocolo_PR = long.Parse(str_AUX);
                                        if (lng_idProtocolo_PR > -1)
                                        {
                                            g_dct_ids_MYT_Protocolos.Add(str_AUX, lng_idProtocolo_PR);
                                        }
                                    }
                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idProtocolo_PR > -1)
                                {
                                    #region  idProtocoloPregunta
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_82.ToString().Trim();

                                    if (str_AUX != null && str_AUX.Trim().Length > 0)
                                    {
                                        if (g_dct_ids_MYT_ProtocolosPreguntas.ContainsKey(str_AUX))
                                        {
                                            lng_idProtocoloPregunta_PR = g_dct_ids_MYT_ProtocolosPreguntas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idProtocoloPregunta_PR = long.Parse(str_AUX);
                                            if (lng_idProtocoloPregunta_PR > -1)
                                            {
                                                g_dct_ids_MYT_ProtocolosPreguntas.Add(str_AUX, lng_idProtocoloPregunta_PR);
                                            }
                                        }
                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idProtocoloPregunta_PR > -1)
                                    {
                                        #region idProtocoloRespuesta
                                        //Si contiene algo busco el idProtocoloPregunta
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_83 != null)
                                        {
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim();

                                            if (str_AUX != null && str_AUX.Trim().Length > 0)
                                            {
                                                if (g_dct_ids_MYT_ProtocolosRespuestas.ContainsKey(str_AUX))
                                                {
                                                    lng_idProtocoloRespuesta_PR = g_dct_ids_MYT_ProtocolosRespuestas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idProtocoloRespuesta_PR = long.Parse(str_AUX);
                                                    if (lng_idProtocoloRespuesta_PR > -1)
                                                    {
                                                        g_dct_ids_MYT_ProtocolosRespuestas.Add(str_AUX, lng_idProtocoloRespuesta_PR);
                                                    }
                                                }
                                            }

                                            //Si no existe muestro error
                                            if (lng_idProtocoloRespuesta_PR == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLORESPUESTA),
                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        #endregion

                                        #region idTerminal
                                        //Si contiene algo busco el idTerminal
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_78 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim() + "_" +
                                                lng_idEmpresa;
                                            //......................................................................................

                                            if (g_dct_ids_GEN_Terminales.ContainsKey(str_AUX))
                                            {
                                                lng_idTerminal_PR = g_dct_ids_GEN_Terminales[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTerminal_PR = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTerminal_PR > -1)
                                                {
                                                    g_dct_ids_GEN_Terminales.Add(str_AUX, lng_idTerminal_PR);
                                                }

                                            }


                                            //Si no existe muestro error
                                            if (lng_idTerminal_PR == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDTERMINAL),
                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        #endregion

                                        #region idTecnico
                                        //Si contiene algo busco el idTecnico
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_77 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                            {
                                                lng_idTecnico_PR = g_dct_ids_MYT_Tecnicos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTecnico_PR = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTecnico_PR > -1)
                                                {
                                                    g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico_PR);
                                                }

                                            }


                                            //Si no existe muestro error
                                            if (lng_idTecnico_PR == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDTECNICO),
                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        #endregion

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS +
                                                        " (" +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPARTE + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_NUMERO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDTECNICO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDTERMINAL + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_FECHAHORA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_TIPO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLO + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLOPREGUNTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLORESPUESTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_RESPUESTA + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_OBSERVACIONES + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_GUID + "," +
                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_FECHABORRADO + 
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                            "@idParte," +
                                                            "@numero," +
                                                            "@idTecnico," +
                                                            "@idTerminal," +
                                                            "@fechaHora," +
                                                            "@tipo," +
                                                            "@idProtocolo," +
                                                            "@idProtocoloPregunta," +
                                                            "@idProtocoloRespuesta," +
                                                            "@respuesta," +
                                                            "@observaciones," +
                                                            "@guid," +
                                                            "@fechaBorrado" +
                                                        " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                        new SqlParameter("@idParte", lng_idParte),
                                        new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_76),
                                        lng_idTecnico_PR > -1
                                            ?   new SqlParameter("@idTecnico", lng_idTecnico_PR )
                                            :   new SqlParameter("@idTecnico",  DBNull.Value),
                                        lng_idTerminal_PR > -1
                                            ?   new SqlParameter("@idTerminal", lng_idTerminal_PR )
                                            :   new SqlParameter("@idTerminal",  DBNull.Value),
                                        new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_79),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_80),
                                        new SqlParameter("@idProtocolo", lng_idProtocolo_PR),
                                        new SqlParameter("@idProtocoloPregunta", lng_idProtocoloPregunta_PR),
                                        lng_idProtocoloRespuesta_PR > -1
                                            ?   new SqlParameter("@idProtocoloRespuesta", lng_idProtocoloRespuesta_PR )
                                            :   new SqlParameter("@idProtocoloRespuesta",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_84 != null
                                            ?   new SqlParameter("@respuesta", mdl_INTERNO_Tabla_Modelo.Objeto_84 )
                                            :   new SqlParameter("@respuesta",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                        new SqlParameter("@guid", ""),
                                        new SqlParameter("@fechaBorrado", DBNull.Value)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_FECHAHORA,
                                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : ""),
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                                        "               Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_82 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_82.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLOPREGUNTA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_81 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_81.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPROTOCOLO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PROTOCOLOSRELLENOS_CAMPO_IDPARTE),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion
                        #region PETICIONDATOS
                        else if (str_Tipo == "6")
                        {
                            if (lng_idParte > -1)
                            {
                                #region  idEstructuraPartePeticionDatoCabecera
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera.ContainsKey(str_AUX))
                                {
                                    lng_idEstructuraPartePeticionDatoCabecera = g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera[str_AUX];
                                }
                                else
                                {
                                    lng_idEstructuraPartePeticionDatoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_CABECERA_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idEstructuraPartePeticionDatoCabecera > -1)
                                    {
                                        g_dct_ids_MYT_EstructurasPartesPeticionDatos_Cabecera.Add(str_AUX, lng_idEstructuraPartePeticionDatoCabecera);
                                    }

                                }

                                #endregion

                                //si existe el registro continuo
                                if (lng_idEstructuraPartePeticionDatoCabecera > -1)
                                {
                                    #region  idEstructuraPartePeticionDatoSeccion
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim() + "_" +
                                              lng_idEstructuraPartePeticionDatoCabecera;
                                    //......................................................................................

                                    if (g_dct_ids_MYT_EstructurasPartesPeticionDatos_Secciones.ContainsKey(str_AUX))
                                    {
                                        lng_idEstructuraPartePeticionDatoSeccion_PD = g_dct_ids_MYT_EstructurasPartesPeticionDatos_Secciones[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEstructuraPartePeticionDatoSeccion_PD = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_SECCIONES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_SECCIONES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_SECCIONES_CAMPO_DESCRIPCION,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_SECCIONES_CAMPO_IDESTRUCTURAPARTEPETICIONDATOCABECERA,
                                                                                                            lng_idEstructuraPartePeticionDatoCabecera.ToString(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEstructuraPartePeticionDatoSeccion_PD > -1)
                                        {
                                            g_dct_ids_MYT_EstructurasPartesPeticionDatos_Secciones.Add(str_AUX, lng_idEstructuraPartePeticionDatoSeccion_PD);
                                        }

                                    }

                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idEstructuraPartePeticionDatoSeccion_PD > -1)
                                    {
                                        #region  idEstructuraPartePeticionDatoPregunta
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim() + "_" +
                                              lng_idEstructuraPartePeticionDatoSeccion_PD;
                                        //......................................................................................

                                        if (g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas.ContainsKey(str_AUX))
                                        {
                                            lng_idEstructuraPartePeticionDatoPregunta_PD = g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEstructuraPartePeticionDatoPregunta_PD = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_PREGUNTAS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_PREGUNTAS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_PREGUNTAS_CAMPO_DESCRIPCION,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_PREGUNTAS_CAMPO_ID_CAMPO_IDESTRUCTURAPARTEPETICIONDATOSECCION,
                                                                                                                lng_idEstructuraPartePeticionDatoSeccion_PD.ToString(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEstructuraPartePeticionDatoPregunta_PD > -1)
                                            {
                                                g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas.Add(str_AUX, lng_idEstructuraPartePeticionDatoPregunta_PD);
                                            }

                                        }

                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idEstructuraPartePeticionDatoPregunta_PD > -1)
                                        {
                                            #region idEstructuraPartePeticionDatoRespuesta
                                            //Si contiene algo busco el idEstructuraPartePeticionDatoRespuesta
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_92 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim() + "_" +
                                                          lng_idEstructuraPartePeticionDatoPregunta_PD;
                                                //......................................................................................

                                                if (g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas.ContainsKey(str_AUX))
                                                {
                                                    lng_idEstructuraPartePeticionDatoRespuesta_PD = g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEstructuraPartePeticionDatoRespuesta_PD = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_RESPUESTAS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_RESPUESTAS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_RESPUESTAS_CAMPO_TEXTO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_92.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_ESTRUCTURASPARTESPETICIONDATOS_RESPUESTAS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOPREGUNTA,
                                                                                                                lng_idEstructuraPartePeticionDatoPregunta_PD.ToString(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEstructuraPartePeticionDatoRespuesta_PD > -1)
                                                    {
                                                        g_dct_ids_MYT_EstructurasPartesPeticionDatos_Repuestas.Add(str_AUX, lng_idEstructuraPartePeticionDatoRespuesta_PD);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idEstructuraPartePeticionDatoRespuesta_PD == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_92.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATORESPUESTA),
                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idTerminal
                                            //Si contiene algo busco el idTerminal
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_88 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim() + "_" +
                                                    lng_idEmpresa;
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Terminales.ContainsKey(str_AUX))
                                                {
                                                    lng_idTerminal_PD = g_dct_ids_GEN_Terminales[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTerminal_PD = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TERMINALES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTerminal_PD > -1)
                                                    {
                                                        g_dct_ids_GEN_Terminales.Add(str_AUX, lng_idTerminal_PD);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idTerminal_PD == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_88.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDTERMINAL),
                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idTecnico
                                            //Si contiene algo busco el idTecnico
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_87 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MYT_Tecnicos.ContainsKey(str_AUX))
                                                {
                                                    lng_idTecnico_PD = g_dct_ids_MYT_Tecnicos[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTecnico_PD = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_TECNICOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTecnico_PD > -1)
                                                    {
                                                        g_dct_ids_MYT_Tecnicos.Add(str_AUX, lng_idTecnico_PD);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idTecnico_PD == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_87.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDTECNICO),
                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS +
                                                            " (" +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDPARTE + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_NUMERO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDTECNICO + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDTERMINAL + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_FECHAHORA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOCABECERA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOSECCION + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOPREGUNTA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATORESPUESTA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_RESPUESTA + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_OBSERVACIONES + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_GUID + "," +
                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_FECHABORRADO +
                                                            " ) " +
                                                            " OUTPUT INSERTED.id " +
                                                            " VALUES " +
                                                            " ( " +
                                                                "@idParte," +
                                                                "@numero," +
                                                                "@idTecnico," +
                                                                "@idTerminal," +
                                                                "@fechaHora," +
                                                                "@tipo," +
                                                                "@idEstructuraPartePeticionDatoCabecera," +
                                                                "@idEstructuraPartePeticionDatoSeccion," +
                                                                "@idEstructuraPartePeticionDatoPregunta," +
                                                                "@idEstructuraPartePeticionDatoRespuesta," +
                                                                "@respuesta," +
                                                                "@observaciones," +
                                                                "@guid," +
                                                                "@fechaBorrado" +
                                                            " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                            new SqlParameter("@idParte", lng_idParte),
                                            new SqlParameter("@numero", mdl_INTERNO_Tabla_Modelo.Objeto_86),
                                            lng_idTecnico_PR > -1
                                                ?   new SqlParameter("@idTecnico", lng_idTecnico_PR )
                                                :   new SqlParameter("@idTecnico",  DBNull.Value),
                                            lng_idTerminal_PD > -1
                                                ?   new SqlParameter("@idTerminal", lng_idTerminal_PD )
                                                :   new SqlParameter("@idTerminal",  DBNull.Value),
                                            new SqlParameter("@fechaHora", mdl_INTERNO_Tabla_Modelo.Objeto_89),
                                            new SqlParameter("@idEstructuraPartePeticionDatoCabecera", lng_idEstructuraPartePeticionDatoCabecera),
                                            new SqlParameter("@idEstructuraPartePeticionDatoSeccion", lng_idEstructuraPartePeticionDatoSeccion_PD),
                                            new SqlParameter("@idEstructuraPartePeticionDatoPregunta", lng_idEstructuraPartePeticionDatoPregunta_PD),
                                            lng_idEstructuraPartePeticionDatoRespuesta_PD > -1
                                                ?   new SqlParameter("@idEstructuraPartePeticionDatoRespuesta", lng_idEstructuraPartePeticionDatoRespuesta_PD )
                                                :   new SqlParameter("@idEstructuraPartePeticionDatoRespuesta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_93 != null
                                                ?   new SqlParameter("@respuesta", mdl_INTERNO_Tabla_Modelo.Objeto_93 )
                                                :   new SqlParameter("@respuesta",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_94 != null
                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_94 )
                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                            new SqlParameter("@guid", ""),
                                            new SqlParameter("@fechaBorrado", DBNull.Value)
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_FECHAHORA,
                                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_89 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim() : ""),
                                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                                                                                                            "               Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_91 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOPREGUNTA),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_90 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOSECCION),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDESTRUCTURAPARTEPETICIONDATOCABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS,
                                                                                                                                                     (mdl_INTERNO_Tabla_Modelo.Objeto_89 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim() : ""),
                                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MYT_PARTES_PETICIONDATOS_CAMPO_IDPARTE),
                                                      nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes),
                                                      "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion


                        // ###############################################################
                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_Partes), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        //VTA ################################################
        #region VTA_Cartera
        public INTERNO_ValorDevuelto_Modelo Insertar_CarteraVentas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            string str_Identificador = "";

            long lng_idFacturaCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idTesoreria = -1;
            long lng_idVendedor = -1;

            long lng_idVencimiento = -1;
            long lng_idCobro = -1;
            long lng_idDevolucionCobro = -1;

            long lng_idTipoPago = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idPredefinidoCabecera = -1;
            long lng_idPredefinidoCabecera_Negociacion = -1;

            long lng_idRemesaCabecera = -1;
            long lng_idRemesaLinea = -1;
            long lng_idDelegacion_Remesa = -1;

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        str_Identificador = "";

                        lng_idFacturaCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idTesoreria = -1;
                        lng_idVendedor = -1;

                        lng_idVencimiento = -1;
                        lng_idCobro = -1;
                        lng_idDevolucionCobro = -1;

                        lng_idTipoPago = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idPredefinidoCabecera = -1;
                        lng_idPredefinidoCabecera_Negociacion = -1;

                        lng_idRemesaCabecera = -1;
                        lng_idRemesaLinea = -1;
                        lng_idDelegacion_Remesa = -1;

                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region idEmpresa
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : "";

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString() : ""),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }
                        #endregion

                        //si existe continuo
                        if (lng_idEmpresa > -1)
                        {
                            #region idDelegacion
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : "") + "_" +
                                        lng_idEmpresa.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                            }
                            else
                            {
                                lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString() : ""),
                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                lng_idEmpresa.ToString().Trim(),
                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idDelegacion > -1)
                                {
                                    g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                }

                            }
                            #endregion

                            //si existe continuo
                            if (lng_idDelegacion > -1)
                            {
                                #region idFacturaCabecera
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : "") + "_" +
                                            lng_idDelegacion.ToString().Trim() + "_" +
                                            lng_idEmpresa.ToString().Trim() + "_" +
                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : "");

                                if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                {
                                    lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                }
                                else
                                {
                                    lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString() : ""),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                        lng_idDelegacion.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString() : ""),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idFacturaCabecera > -1)
                                    {
                                        g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                    }

                                }
                                #endregion

                                //Si existe continuo
                                if (lng_idFacturaCabecera > -1)
                                {
                                    #region Vencimientos
                                    if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_VENCIMIENTO))
                                    {
                                        #region idVencimiento
                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : "") + "_" +
                                                    lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : "");

                                        if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                        {
                                            lng_idVencimiento = g_dct_ids_VTA_Vencimientos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idVencimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                            lng_idFacturaCabecera.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idVencimiento > -1)
                                            {
                                                g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento);
                                            }

                                        }
                                        #endregion 

                                        //Si no existe inserto el registro
                                        if (lng_idVencimiento == -1)
                                        {
                                            #region idTesoreria
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                {
                                                    lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idTesoreria > -1)
                                                    {
                                                        g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                    }

                                                }


                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idTesoreria == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDTESORERIA),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            #endregion

                                            #region idVendedor
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor);
                                                    }

                                                }


                                                //Si no lo encontro muestro mensaje de error
                                                if (lng_idVendedor == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDVENDEDOR),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDCONCEPTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IMPORTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDTESORERIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDVENDEDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_REFERENCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHANOTIFICACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_TIPONOTIFICACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTOVOLUNTARIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHACERTIFICACIONPROVIDENCIAAPREMIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_PERIODOPRESCRIPCIONMESES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_SANCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_NUMEROEXPEDIENTESANCION +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                        "@codigo," +
                                                                                        "@observaciones," +
                                                                                        "@idFacturaCabecera," +
                                                                                        "@idConcepto," +
                                                                                        "@importe," +
                                                                                        "@fechaVencimiento," +
                                                                                        "@idTesoreria," +
                                                                                        "@idVendedor," +
                                                                                        "@estado," +
                                                                                        "@referencia," +
                                                                                        "@fechaNotificacion," +
                                                                                        "@tipoNotificacion," +
                                                                                        "@fechaVencimientoVoluntaria," +
                                                                                        "@fechaCertificacionProvidenciaApremio," +
                                                                                        "@periodoPrescripcionMeses," +
                                                                                        "@sancion," +
                                                                                        "@numeroExpedienteSancion" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@codigo",  mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                                new SqlParameter("@observaciones",  mdl_INTERNO_Tabla_Modelo.Objeto_5),
                                                new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                                new SqlParameter("@idConcepto",  DBNull.Value),
                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                new SqlParameter("@fechaVencimiento", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                lng_idTesoreria > -1
                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria > -1 )
                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                lng_idVendedor > -1
                                                    ?   new SqlParameter("@idVendedor", lng_idVendedor > -1 )
                                                    :   new SqlParameter("@idVendedor",  DBNull.Value),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                new SqlParameter("@referencia",  DBNull.Value),
                                                new SqlParameter("@fechaNotificacion",  DBNull.Value),
                                                new SqlParameter("@tipoNotificacion",  DBNull.Value),
                                                new SqlParameter("@fechaVencimientoVoluntaria",  DBNull.Value),
                                                new SqlParameter("@fechaCertificacionProvidenciaApremio",  DBNull.Value),
                                                new SqlParameter("@periodoPrescripcionMeses",  DBNull.Value),
                                                new SqlParameter("@sancion",  DBNull.Value),
                                                new SqlParameter("@numeroExpedienteSancion",  DBNull.Value),
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idVencimiento = mdl_ValorDevuelto_Modelo.Id;

                                                //Añadir al Diccionario
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                            lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim();

                                                g_dct_ids_VTA_Vencimientos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    #endregion

                                    #region Cobros
                                    if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_COBRO))
                                    {
                                        //Si el codigo esta vacio no relleno cobro
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                                        {
                                            #region idVencimiento
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : "") + "_" +
                                                        lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : "");

                                            if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                            {
                                                lng_idVencimiento = g_dct_ids_VTA_Vencimientos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idVencimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idVencimiento > -1)
                                                {
                                                    g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento);
                                                }

                                            }
                                            #endregion

                                            //Si existe continuo
                                            if (lng_idVencimiento > -1)
                                            {
                                                #region idCobro
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" + 
                                                          lng_idVencimiento.ToString().Trim() + "_" +
                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_16!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : "");

                                                if (g_dct_ids_VTA_Cobros.ContainsKey(str_AUX))
                                                {
                                                    lng_idCobro = g_dct_ids_VTA_Cobros[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idCobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO,
                                                                                                            lng_idVencimiento.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idCobro > -1)
                                                    {
                                                        g_dct_ids_VTA_Cobros.Add(str_AUX, lng_idCobro);
                                                    }

                                                }
                                                #endregion

                                                //Si no existe inserto el registro
                                                if (lng_idCobro == -1)
                                                {
                                                    #region idTesoreria
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                        {
                                                            lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idTesoreria > -1)
                                                            {
                                                                g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idTesoreria == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDTESORERIA),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idTipoPago
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                                    {
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();

                                                        if (g_dct_ids_MAE_TiposPagos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idTipoPago = g_dct_ids_MAE_TiposPagos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idTipoPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_TIPOSPAGOS_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idTipoPago > -1)
                                                            {
                                                                g_dct_ids_MAE_TiposPagos.Add(str_AUX, lng_idTipoPago);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idTipoPago == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                  Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDTIPOPAGO),
                                                                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                  "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idVendedor
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_13 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVendedor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVendedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVendedor > -1)
                                                            {
                                                                g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idVendedor == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_13.ToString().Trim(),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENDEDOR),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idClaveAnalitica
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                                    {
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() + "_" +
                                                             lng_idEmpresa.ToString().Trim();

                                                        if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idClaveAnalitica > -1)
                                                            {
                                                                g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idClaveAnalitica == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDCLAVEANALITICA),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPredefinidoCabecera
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                                    {
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim();

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idPredefinidoCabecera == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDPREDEFINIDOCABECERA_COBRO),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPredefinidoCabecera_Negociacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                                    {
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim();

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Negociacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Negociacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Negociacion > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Negociacion);
                                                            }

                                                        }


                                                        //Si no lo encontro muestro mensaje de error
                                                        if (lng_idPredefinidoCabecera_Negociacion == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDPREDEFINIDOCABECERA_NEGOCIACION),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idRemesaLinea
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                                    {
                                                        #region idDelegacion Remesa
                                                        str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : "") + "_" +
                                                                    lng_idEmpresa.ToString().Trim();

                                                        if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                        {
                                                            lng_idDelegacion_Remesa = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idDelegacion_Remesa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idDelegacion_Remesa > -1)
                                                            {
                                                                g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_Remesa);
                                                            }

                                                        }
                                                        #endregion

                                                        //si existe continuo
                                                        if (lng_idDelegacion_Remesa > -1)
                                                        {
                                                            #region idRemesaCabecera
                                                            str_AUX =  (mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : "") + "_" +
                                                                        lng_idEmpresa.ToString().Trim() + "_" +
                                                                        lng_idDelegacion_Remesa.ToString().Trim() + "_" +
                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim() : "");

                                                            if (g_dct_ids_VTA_RemesasCabecera.ContainsKey(str_AUX))
                                                            {
                                                                lng_idRemesaCabecera = g_dct_ids_VTA_RemesasCabecera[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idRemesaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_CODIGO,
                                                                                                                                 (mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                lng_idDelegacion_Remesa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_FECHA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idRemesaCabecera > -1)
                                                                {
                                                                    g_dct_ids_VTA_RemesasCabecera.Add(str_AUX, lng_idRemesaCabecera);
                                                                }

                                                            }
                                                            #endregion

                                                            //Si no existe muestro error
                                                            if (lng_idRemesaCabecera == -1)
                                                            {

                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() : ""),
                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_CODIGO),
                                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                            //todo correcto
                                                            else
                                                            {
                                                                #region idRemesaLinea
                                                                str_AUX = lng_idRemesaCabecera.ToString().Trim() + "_" +
                                                                          (mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() : "");

                                                                if (g_dct_ids_VTA_RemesasLineas.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idRemesaLinea = g_dct_ids_VTA_RemesasLineas[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idRemesaLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDREMESACABECERA,
                                                                                                                                lng_idRemesaCabecera.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_POSICION,
                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim().Length > 0 ? mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idRemesaLinea > -1)
                                                                    {
                                                                        g_dct_ids_VTA_RemesasLineas.Add(str_AUX, lng_idRemesaLinea);
                                                                    }

                                                                }
                                                                #endregion

                                                                //Si no existe muestro error
                                                                if (lng_idRemesaLinea == -1)
                                                                {

                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                  Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDREMESALINEA),
                                                                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                  "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }

                                                        }
                                                        else
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                  Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                              "idDelegacion_Remesa"),
                                                                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                  "Nº linea:" + int_Contador_Linea_Excel);
                                                           
                                                        }
                                                    }
                                                    #endregion

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS +
                                                                                    " (" +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHA + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDTESORERIA + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_COMISION + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CORREO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_PORCENTAJECOMISION + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IMPORTECOMISION + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_OBSERVACIONES + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHAVENCIMIENTOTALON + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_efecto + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDTIPOPAGO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENDEDOR + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDCLAVEANALITICA + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDPREDEFINIDOCABECERA_COBRO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDPREDEFINIDOCABECERA_NEGOCIACION + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IMPORTE + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDREMESALINEA + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ESTADO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CONFIRMADO + "," +
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_MANTENERPENDIENTE + 
                                                                                    " ) " +
                                                                                    " OUTPUT INSERTED.id " +
                                                                                    " VALUES " +
                                                                                    " ( " +
                                                                                                    "@idVencimiento," +
                                                                                                    "@codigo," +
                                                                                                    "@fecha," +
                                                                                                    "@idTesoreria," +
                                                                                                    "@comision," +
                                                                                                    "@correo," +
                                                                                                    "@porcentajeComision," +
                                                                                                    "@importeComision," +
                                                                                                    "@observaciones," +
                                                                                                    "@fechaVencimientoTalon," +
                                                                                                    "@efecto," +
                                                                                                    "@idTipoPago," +
                                                                                                    "@idVendedor," +
                                                                                                    "@idClaveAnalitica," +
                                                                                                    "@idPredefinidoCabecera_Cobro," +
                                                                                                    "@idPredefinidoCabecera_Negociacion," +
                                                                                                    "@importe," +
                                                                                                    "@idRemesaLinea," +
                                                                                                    "@estado," +
                                                                                                    "@confirmado," +
                                                                                                    "@mantenerPendiente" +
                                                                                    " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@idVencimiento", lng_idVencimiento),
                                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_16),
                                                        lng_idTesoreria > -1
                                                            ?   new SqlParameter("@idTesoreria", lng_idTesoreria )
                                                            :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                            ?   new SqlParameter("@comision", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                            :   new SqlParameter("@comision",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                            ?   new SqlParameter("@correo", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                            :   new SqlParameter("@correo",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                            ?   new SqlParameter("@porcentajeComision", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                            :   new SqlParameter("@porcentajeComision",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                            ?   new SqlParameter("@importeComision", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                            :   new SqlParameter("@importeComision",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_22!= null
                                                            ?   new SqlParameter("@fechaVencimientoTalon", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                            :   new SqlParameter("@fechaVencimientoTalon",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_23 != null
                                                            ?   new SqlParameter("@efecto", mdl_INTERNO_Tabla_Modelo.Objeto_23 )
                                                            :   new SqlParameter("@efecto",  DBNull.Value),
                                                        lng_idTipoPago > -1
                                                            ?   new SqlParameter("@idTipoPago", lng_idTipoPago )
                                                            :   new SqlParameter("@idTipoPago",  DBNull.Value),
                                                        lng_idVendedor > -1
                                                            ?   new SqlParameter("@idVendedor", lng_idVendedor)
                                                            :   new SqlParameter("@idVendedor",  DBNull.Value),
                                                        lng_idClaveAnalitica > -1
                                                            ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                            :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                        lng_idPredefinidoCabecera > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Cobro", lng_idPredefinidoCabecera )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Cobro",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Negociacion > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Negociacion", lng_idPredefinidoCabecera_Negociacion )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Negociacion",  DBNull.Value),
                                                        new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                        lng_idRemesaLinea > -1
                                                            ?   new SqlParameter("@idRemesaLinea", lng_idRemesaLinea )
                                                            :   new SqlParameter("@idRemesaLinea",  DBNull.Value),
                                                        new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                            ?   new SqlParameter("@confirmado", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                            :   new SqlParameter("@confirmado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                            ?   new SqlParameter("@mantenerPendiente", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                            :   new SqlParameter("@mantenerPendiente",  DBNull.Value),
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        //Añadir al Diccionario
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                                lng_idVencimiento.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : "");

                                                        g_dct_ids_VTA_Cobros.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                    }
                                    #endregion

                                    #region DevolucionCobros
                                    if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_DEVOLUCION))
                                    {
                                        //Si no existe el copdigo no relleno devoluciones
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null)
                                        {
                                            #region idVencimiento
                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : "") + "_" +
                                                        lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : "");

                                            if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                            {
                                                lng_idVencimiento = g_dct_ids_VTA_Vencimientos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idVencimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString() : ""),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                                lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_FECHAVENCIMIENTO,
                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString() : ""),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idVencimiento > -1)
                                                {
                                                    g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento);
                                                }

                                            }
                                            #endregion

                                            //Si existe continuo
                                            if (lng_idVencimiento > -1)
                                            {
                                                #region idCobro
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                                lng_idVencimiento.ToString().Trim() + "_" +
                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : "");

                                                if (g_dct_ids_VTA_Cobros.ContainsKey(str_AUX))
                                                {
                                                    lng_idCobro = g_dct_ids_VTA_Cobros[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idCobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO,
                                                                                                           lng_idVencimiento.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_FECHA,
                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() : ""),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idCobro > -1)
                                                    {
                                                        g_dct_ids_VTA_Cobros.Add(str_AUX, lng_idCobro);
                                                    }

                                                }
                                                #endregion

                                                //Si existe continuo
                                                if (lng_idCobro > -1)
                                                {
                                                    #region idDevolucionCobro
                                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_4!=null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" +
                                                              lng_idCobro.ToString().Trim() + "_" +
                                                              (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : "");

                                                    if (g_dct_ids_VTA_DevolucionesCobros.ContainsKey(str_AUX))
                                                    {
                                                        lng_idDevolucionCobro = g_dct_ids_VTA_DevolucionesCobros[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idDevolucionCobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_CODIGO,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCOBRO,
                                                                                                                        lng_idCobro.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_FECHA,
                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idDevolucionCobro > -1)
                                                        {
                                                            g_dct_ids_VTA_DevolucionesCobros.Add(str_AUX, lng_idDevolucionCobro);
                                                        }

                                                    }
                                                    #endregion

                                                    //si no existe inserto
                                                    if (lng_idDevolucionCobro == -1)
                                                    {
                                                        #region idTesoreria
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                                                      lng_idEmpresa.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                                            {
                                                                lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idTesoreria > -1)
                                                                {
                                                                    g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                                }

                                                            }


                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idTesoreria == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDTESORERIA),
                                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        #endregion

                                                        #region idClaveAnalitica
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                                        {
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() + "_" +
                                                                 lng_idEmpresa.ToString().Trim();

                                                            if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idClaveAnalitica > -1)
                                                                {
                                                                    g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                                }

                                                            }


                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idClaveAnalitica == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCLAVEANALITICA),
                                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        #endregion

                                                        #region idPredefinidoCabecera
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                                        {
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim();

                                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPredefinidoCabecera > -1)
                                                                {
                                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                                                }

                                                            }


                                                            //Si no lo encontro muestro mensaje de error
                                                            if (lng_idPredefinidoCabecera == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDPREDEFINIDOCABECERA_DEVOLUCIONCOBRO),
                                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        #endregion

                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS +
                                                                                " (" +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCOBRO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_CODIGO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_FECHA + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDTESORERIA + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_COMISION + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_CORREO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_PORCENTAJECOMISION + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IMPORTECOMISION + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_OBSERVACIONES + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCLAVEANALITICA + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDPREDEFINIDOCABECERA_DEVOLUCIONCOBRO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IMPORTE + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_ESTADO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDRECEPCIONFICHERO + "," +
                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDSEPA_TIPODEVOLUCION + 
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                            "@idCobro," +
                                                                                            "@codigo," +
                                                                                            "@fecha," +
                                                                                            "@idTesoreria," +
                                                                                            "@comision," +
                                                                                            "@correo," +
                                                                                            "@porcentajeComision," +
                                                                                            "@importeComision," +
                                                                                            "@observaciones," +
                                                                                            "@idClaveAnalitica," +
                                                                                            "@idPredefinidoCabecera_DevolucionCobro," +
                                                                                            "@importe," +
                                                                                            "@estado," +
                                                                                            "@idRecepcionFichero," +
                                                                                            "@idSEPA_TipoDevolucion" +
                                                                                " ) ";

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                                new SqlParameter("@idCobro", lng_idCobro),
                                                                new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_4),
                                                                new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_17),
                                                                lng_idTesoreria > -1
                                                                    ?   new SqlParameter("@idTesoreria", lng_idTesoreria )
                                                                    :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_18 != null
                                                                    ?   new SqlParameter("@comision", mdl_INTERNO_Tabla_Modelo.Objeto_18 )
                                                                    :   new SqlParameter("@comision",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                                    ?   new SqlParameter("@correo", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                                    :   new SqlParameter("@correo",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                                    ?   new SqlParameter("@porcentajeComision", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                                    :   new SqlParameter("@porcentajeComision",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                                    ?   new SqlParameter("@importeComision", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                                    :   new SqlParameter("@importeComision",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                                lng_idClaveAnalitica > -1
                                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                                lng_idPredefinidoCabecera > -1
                                                                    ?   new SqlParameter("@idPredefinidoCabecera_DevolucionCobro", lng_idPredefinidoCabecera )
                                                                    :   new SqlParameter("@idPredefinidoCabecera_DevolucionCobro",  DBNull.Value),
                                                                new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_14),
                                                                new SqlParameter("@idRecepcionFichero", DBNull.Value),
                                                                new SqlParameter("@idSEPA_TipoDevolucion", DBNull.Value),
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_CODIGO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        else
                                                        {
                                                            //Añadir al Diccionario
                                                            str_AUX =   mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" +
                                                                        lng_idCobro.ToString().Trim() +"_" +
                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim();

                                                            g_dct_ids_VTA_DevolucionesCobros.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS_CAMPO_IDCOBRO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS_CAMPO_IDVENCIMIENTO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                    }
                                    //###################################################################################################
                                    #endregion
                                }
                                else
                                {

                                    if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_VENCIMIENTO))
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_COBRO))
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_DEVOLUCION))
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                            }
                            else
                            {

                                if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_VENCIMIENTO))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                         (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                         "idDelegacion"),
                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                             "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_COBRO))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                        "idDelegacion"),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_DEVOLUCION))
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() : ""),
                                                                                                                                        "idDelegacion"),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                }

                                
                            }
                        }
                        else
                        {
                            if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_VENCIMIENTO))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                       "idEmpresa"),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_COBRO))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_COBROS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                       "idEmpresa"),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CARTERA_DEVOLUCION))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_DEVOLUCIONESCOBROS,
                                                                                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim() : ""),
                                                                                                                                       "idEmpresa"),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                            }

                           
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region VTA_Pedidos
        public INTERNO_ValorDevuelto_Modelo Insertar_PedidosVentas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";

            #region Variables
            string str_Identificador = "";
            long lng_idPedidosCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idCliente = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idRelacionClienteProveedor = -1;
            long lng_idEmpleado = -1;
            long lng_idVendedor_Preventa = -1;
            long lng_idVendedor_Preventa_Habitual = -1;
            long lng_idVendedor_Preventa_Repartidor = -1;
            long lng_idPredefinidoCabecera_Pedido = -1;
            long lng_idPredefinidoCabecera_Cancelacion = -1;
            long lng_idPredefinidoCabecera_Anulacion = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_idPedidosCabecera_Anexo = -1;
            long lng_idPedidosLineas = -1;
            long lng_idTipoCompraVenta = -1;
            long lng_idArticulo = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idArticuloComodin = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idPedidoLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idPedidosLineas_Comentario = -1;
            long lng_idPedidosLineas_TarifasPromociones = -1;
            long lng_idNomenclaturaPrecio_Tarifa = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idPedidosLineas_TarifasPromociones_Condicionantes = -1;
            string str_AUX = "";
            #endregion

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            List<long> lst_idPedidosCabecera_Insertados = new List<long>();

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;

                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idPedidosCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idCliente = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idRelacionClienteProveedor = -1;
                        lng_idEmpleado = -1;
                        lng_idVendedor_Preventa = -1;
                        lng_idVendedor_Preventa_Habitual = -1;
                        lng_idVendedor_Preventa_Repartidor = -1;
                        lng_idPredefinidoCabecera_Pedido = -1;
                        lng_idPredefinidoCabecera_Cancelacion = -1;
                        lng_idPredefinidoCabecera_Anulacion = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idPedidosCabecera_Anexo = -1;
                        lng_idPedidosLineas = -1;
                        lng_idTipoCompraVenta = -1;
                        lng_idArticulo = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio= -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idArticuloComodin = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idPedidoLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idPedidosLineas_Comentario = -1;
                        lng_idPedidosLineas_TarifasPromociones = -1;
                        lng_idNomenclaturaPrecio_Tarifa = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;
                        lng_idPedidosLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            #region idEmpresa
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }
                            #endregion

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                #region idDelegacion
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    #region idCliente
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();

                                    if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                    {
                                        lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idCliente > -1)
                                        {
                                            g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idCliente > -1)
                                    {
                                        #region idMoneda
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();

                                        if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                        {
                                            lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMoneda > -1)
                                            {
                                                g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idMoneda > -1)
                                        {
                                            #region idImpuestoCabecera
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" +
                                                      lng_idEmpresa.ToString().Trim();

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }

                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {
                                                #region idPedidosCabecera
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                          lng_idDelegacion.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                                                if (g_dct_ids_VTA_PedidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPedidosCabecera = g_dct_ids_VTA_PedidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPedidosCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                        lng_idDelegacion.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPedidosCabecera > -1)
                                                    {
                                                        g_dct_ids_VTA_PedidosCabeceras.Add(str_AUX, lng_idPedidosCabecera);
                                                    }

                                                }
                                                #endregion

                                                //Si no existe inserto el registro
                                                if (lng_idPedidosCabecera == -1)
                                                {
                                                    #region idRelacionClienteProveedor
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                                                  lng_idCliente.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_SRV_RelacionClienteProveedor.ContainsKey(str_AUX))
                                                        {
                                                            lng_idRelacionClienteProveedor = g_dct_ids_SRV_RelacionClienteProveedor[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idRelacionClienteProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_IDCLIENTE,
                                                                                                                                        lng_idCliente.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idRelacionClienteProveedor > -1)
                                                            {
                                                                g_dct_ids_SRV_RelacionClienteProveedor.Add(str_AUX, lng_idRelacionClienteProveedor);
                                                            }
                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_idRelacionClienteProveedor == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDRELACIONCLIENTEPROVEEDOR),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idEmpleado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmpleado > -1)
                                                            {
                                                                g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                            }

                                                        }

                                                        

                                                        //Si no existe muestro error
                                                        if (lng_idEmpleado == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPLEADO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idVendedor_Preventa
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVendedor_Preventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVendedor_Preventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVendedor_Preventa > -1)
                                                            {
                                                                g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idVendedor_Preventa == -1)
                                                        {

                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_PREVENTA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idVendedor_Preventa_Habitual
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVendedor_Preventa_Habitual = g_dct_ids_MAE_Vendedores[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVendedor_Preventa_Habitual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVendedor_Preventa_Habitual > -1)
                                                            {
                                                                g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa_Habitual);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idVendedor_Preventa_Habitual == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);


                                                        }
                                                    }
                                                    #endregion

                                                    #region idVendedor_Preventa_Repartidor
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVendedor_Preventa_Repartidor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVendedor_Preventa_Repartidor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVendedor_Preventa_Repartidor > -1)
                                                            {
                                                                g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa_Repartidor);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idVendedor_Preventa_Repartidor == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPredefinidoCabecera_Pedido
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_21 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Pedido = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Pedido = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Pedido > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Pedido);
                                                            }
                                                        }

                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Pedido == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_21.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_PEDIDO),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPredefinidoCabecera_Cancelacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Cancelacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Cancelacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Cancelacion > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Cancelacion);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Cancelacion == -1)
                                                        {

                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_CANCELACION),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPredefinidoCabecera_Anulacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPredefinidoCabecera_Anulacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPredefinidoCabecera_Anulacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPredefinidoCabecera_Anulacion > -1)
                                                            {
                                                                g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Anulacion);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idPredefinidoCabecera_Anulacion == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ANULACION),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idClaveAnalitica
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idClaveAnalitica > -1)
                                                            {
                                                                g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idClaveAnalitica == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDCLAVEANALITICA),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);                                                           
                                                        }
                                                    }
                                                    #endregion

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA +
                                                                                " (" +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ESTADO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TIPOVISITA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDCLIENTE + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDMONEDA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDRELACIONCLIENTEPROVEEDOR + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_PREVENTA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_REFERENCIA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHAPREVISTA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_PEDIDO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_CANCELACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ANULACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_RECARGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_SITUACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_AUTORIZADO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_BASEIMPOBIBLE + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_RECARGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALALBARAN + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL + 
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                                "@numeroDocumento," +
                                                                                                "@descripcion," +
                                                                                                "@idDelegacion," +
                                                                                                "@idEmpresa," +
                                                                                                "@fecha," +
                                                                                                "@estado," +
                                                                                                "@tipoVisita," +
                                                                                                "@idCliente," +
                                                                                                "@idMoneda," +
                                                                                                "@idImpuestoCabecera," +
                                                                                                "@idRelacionClienteProveedor," +
                                                                                                "@descuentoProntoPago," +
                                                                                                "@descuentoFinalFactura," +
                                                                                                "@idEmpleado," +
                                                                                                "@idVendedor_Preventa," +
                                                                                                "@idVendedor_PreventaHabitual," +
                                                                                                "@idVendedor_Repartidor," +
                                                                                                "@referencia," +
                                                                                                "@fechaPrevista," +
                                                                                                "@idPredefinidoCabecera_Pedido," +
                                                                                                "@idPredefinidoCabecera_Cancelacion," +
                                                                                                "@idPredefinidoCabecera_Anulacion," +
                                                                                                "@idClaveAnalitica," +
                                                                                                "@recargo," +
                                                                                                "@situacion," +
                                                                                                "@autorizado," +
                                                                                                "@observaciones," +
                                                                                                "@descuentoFinalAlbaran," +
                                                                                                "@total_bruto," +
                                                                                                "@total_descuentoProntoPago," +
                                                                                                "@total_descuentoFinalFactura," +
                                                                                                "@total_baseImponible," +
                                                                                                "@total_impuesto," +
                                                                                                "@total_recargo," +
                                                                                                "@total_descuentoFinalAlbaran," +
                                                                                                "@total" +
                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                            :   new SqlParameter("@estado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                            ?   new SqlParameter("@tipoVisita", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                                            :   new SqlParameter("@tipoVisita",  DBNull.Value),
                                                        new SqlParameter("@idCliente", lng_idCliente),
                                                        new SqlParameter("@idMoneda", lng_idMoneda),
                                                        new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                        lng_idRelacionClienteProveedor > -1
                                                            ?   new SqlParameter("@idRelacionClienteProveedor", lng_idRelacionClienteProveedor )
                                                            :   new SqlParameter("@idRelacionClienteProveedor",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                            ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                            :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                            :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                        lng_idEmpleado > -1
                                                            ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                            :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                        lng_idVendedor_Preventa > -1
                                                            ?   new SqlParameter("@idVendedor_Preventa", lng_idVendedor_Preventa )
                                                            :   new SqlParameter("@idVendedor_Preventa",  DBNull.Value),
                                                        lng_idVendedor_Preventa_Habitual > -1
                                                            ?   new SqlParameter("@idVendedor_PreventaHabitual", lng_idVendedor_Preventa_Habitual )
                                                            :   new SqlParameter("@idVendedor_PreventaHabitual",  DBNull.Value),
                                                        lng_idVendedor_Preventa_Repartidor > -1
                                                            ?   new SqlParameter("@idVendedor_Repartidor", lng_idVendedor_Preventa_Repartidor )
                                                            :   new SqlParameter("@idVendedor_Repartidor",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                            ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                            :   new SqlParameter("@referencia",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                            ?   new SqlParameter("@fechaPrevista", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                            :   new SqlParameter("@fechaPrevista",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Pedido > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Pedido", lng_idPredefinidoCabecera_Pedido )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Pedido",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Cancelacion > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Cancelacion", lng_idPredefinidoCabecera_Cancelacion )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Cancelacion",  DBNull.Value),
                                                        lng_idPredefinidoCabecera_Anulacion > -1
                                                            ?   new SqlParameter("@idPredefinidoCabecera_Anulacion", lng_idPredefinidoCabecera_Anulacion )
                                                            :   new SqlParameter("@idPredefinidoCabecera_Anulacion",  DBNull.Value),
                                                        lng_idClaveAnalitica > -1
                                                            ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                            :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                                        new SqlParameter("@situacion", mdl_INTERNO_Tabla_Modelo.Objeto_26 ),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_27 != null
                                                            ?   new SqlParameter("@autorizado", mdl_INTERNO_Tabla_Modelo.Objeto_27 )
                                                            :   new SqlParameter("@autorizado",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_28 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                            ?   new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                            :   new SqlParameter("@descuentoFinalAlbaran",  DBNull.Value),
                                                        new SqlParameter("@total_bruto", "0.00" ),
                                                        new SqlParameter("@total_descuentoProntoPago", "0.00" ),
                                                        new SqlParameter("@total_descuentoFinalFactura", "0.00" ),
                                                        new SqlParameter("@total_baseImponible", "0.00" ),
                                                        new SqlParameter("@total_impuesto", "0.00" ),
                                                        new SqlParameter("@total_recargo", "0.00" ),
                                                        new SqlParameter("@total_descuentoFinalAlbaran", "0.00" ),
                                                        new SqlParameter("@total", "0.00" )
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                            }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idPedidosCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                        //Insertados
                                                        lst_idPedidosCabecera_Insertados.Add(lng_idPedidosCabecera);

                                                        //Añadir al Diccionario
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                                  lng_idDelegacion.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                                                        g_dct_ids_VTA_PedidosCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDMONEDA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {

                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDCLIENTE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                             }
                        }
                        #endregion

                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idPedidosCabecera > -1)
                        {
                            //Si no existe el numeroDocumentoManual no relleno el anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_30 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_32 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null)
                            {

                                #region idPedidosCabecera_Anexo
                                str_AUX = lng_idPedidosCabecera.ToString().Trim();

                                if (g_dct_ids_VTA_PedidosCabecerasAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idPedidosCabecera_Anexo = g_dct_ids_VTA_PedidosCabecerasAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidosCabecera_Anexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_IDPEDIDOCABECERA,
                                                                                                           lng_idPedidosCabecera.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidosCabecera_Anexo > -1)
                                    {
                                        g_dct_ids_VTA_PedidosCabecerasAnexos.Add(str_AUX, lng_idPedidosCabecera_Anexo);
                                    }

                                }
                                #endregion

                                //Si no existe inserto el registro
                                if (lng_idPedidosCabecera_Anexo == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS +
                                                                  " (" +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_IDPEDIDOCABECERA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_NUMERODOCUMENTOMANUAL + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_NUMEROPEDIDOCLIENTE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_IDENTICKET + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_SECCION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_DEPARTAMENTO +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                            "@idPedidoCabecera," +
                                                                            "@numeroDocumentoManual," +
                                                                            "@numeroPedidoCliente," +
                                                                            "@identicket," +
                                                                            "@seccion," +
                                                                            "@departamento" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                                      new SqlParameter("@idPedidoCabecera", lng_idPedidosCabecera),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                          ?   new SqlParameter("@numeroDocumentoManual", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                          :   new SqlParameter("@numeroDocumentoManual",  DBNull.Value),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                          ?   new SqlParameter("@numeroPedidoCliente", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                          :   new SqlParameter("@numeroPedidoCliente",  DBNull.Value),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                          ?   new SqlParameter("@identicket", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                          :   new SqlParameter("@identicket",  DBNull.Value),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                          ?   new SqlParameter("@seccion", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                          :   new SqlParameter("@seccion",  DBNull.Value),
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                          ?   new SqlParameter("@departamento", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                          :   new SqlParameter("@departamento",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS_CAMPO_NUMERODOCUMENTOMANUAL,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_ANEXOS,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPedidosCabecera.ToString().Trim();

                                        g_dct_ids_VTA_PedidosCabecerasAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_VTA_PedidosCabeceras.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Pedido Cabecera
                                lng_idPedidosCabecera = g_dct_ids_VTA_PedidosCabeceras[str_AUX];

                                #region idTipoCompraVenta
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim();

                                if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                {
                                    lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                }
                                else
                                {
                                    lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idTipoCompraVenta > -1)
                                    {
                                        g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idTipoCompraVenta > -1)
                                {
                                    #region idAlmacen
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim() + "_" +
                                                lng_idEmpresa.ToString().Trim();

                                    if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                    {
                                        lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAlmacen > -1)
                                        {
                                            g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idAlmacen > -1)
                                    {
                                        #region idEmbalaje
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim();

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idEmbalaje > -1)
                                        {
                                            #region idEmbalaje_EmbalajePrincipal
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim();

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                }
                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                            {
                                                #region idNomenclaturaPrecio
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim();

                                                if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                                {
                                                    lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idNomenclaturaPrecio> -1)
                                                    {
                                                        g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                                    }

                                                }
                                                #endregion

                                                //si existe el registro continuo
                                                if (lng_idNomenclaturaPrecio > -1)
                                                {
                                                    #region idPedidosLineas
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() + "_" +
                                                                lng_idPedidosCabecera.ToString().Trim();

                                                    if (g_dct_ids_VTA_PedidosLineas.ContainsKey(str_AUX))
                                                    {
                                                        lng_idPedidosLineas = g_dct_ids_VTA_PedidosLineas[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idPedidosLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOCABECERA,
                                                                                                                    lng_idPedidosCabecera.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idPedidosLineas > -1)
                                                        {
                                                            g_dct_ids_VTA_PedidosLineas.Add(str_AUX, lng_idPedidosLineas);
                                                        }

                                                    }
                                                    #endregion

                                                    //si no existe inserto
                                                    if (lng_idPedidosLineas == -1)
                                                    {
                                                        #region idArticulo 
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_36 != null)
                                                        {
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim() + "_" +
                                                                    lng_idEmpresa.ToString().Trim();

                                                            if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                                            {
                                                                lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idArticulo > -1)
                                                                {
                                                                    g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                                                }

                                                            }

                                                            //Si no existe muestro error
                                                            if (lng_idArticulo == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                            }
                                                        }
                                                        #endregion

                                                        #region idArticuloComodin
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_37 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim() + "_" +
                                                                        lng_idEmpresa.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_ArticulosComodin.ContainsKey(str_AUX))
                                                            {
                                                                lng_idArticuloComodin = g_dct_ids_MAE_ArticulosComodin[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idArticuloComodin = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA,
                                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idArticuloComodin > -1)
                                                                {
                                                                    g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, lng_idArticuloComodin);
                                                                }

                                                            }


                                                            //Si no existe muestro error
                                                            if (lng_idArticuloComodin == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULOCOMODIN),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                            }
                                                        }
                                                        #endregion

                                                        #region idUbicacion
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_41 != null)
                                                        {
                                                                   
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_41.ToString().Trim() + "_" +
                                                                        lng_idEmpresa.ToString().Trim();

                                                            if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                            {
                                                                lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_41.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idUbicacion > -1)
                                                                {
                                                                    g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                                }

                                                            }


                                                            //Si no existe muestro error
                                                            if (lng_idUbicacion == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_41.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDUBICACION),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                            }
                                                        }
                                                        #endregion

                                                        #region idEmbalaje_SegundaUnidad
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_48 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                {
                                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                }

                                                            }


                                                            //Si no existe muestro error
                                                            if (lng_idEmbalaje_SegundaUnidad == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_48.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                    #endregion

                                                        #region idImpuestoTipo
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_55 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idImpuestoTipo > -1)
                                                                    {
                                                                        g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idImpuestoTipo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                            }
                                                        #endregion

                                                        #region idPedidoLinea_Padre
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_56 != null)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim() + "_" +
                                                                        lng_idArticulo.ToString().Trim() + "_" +
                                                                        lng_idAlmacen.ToString().Trim() + "_" +
                                                                        lng_idEmbalaje.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_VTA_PedidosLineas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPedidoLinea_Padre = g_dct_ids_VTA_PedidosLineas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPedidoLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                    lng_idArticulo.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDALMACEN,
                                                                                                                    lng_idAlmacen.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDEMBALAJE,
                                                                                                                    lng_idEmbalaje.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPedidoLinea_Padre > -1)
                                                                {
                                                                    g_dct_ids_VTA_PedidosLineas.Add(str_AUX, lng_idPedidoLinea_Padre);
                                                                }

                                                            }


                                                            //Si no existe muestro error
                                                            if (lng_idPedidoLinea_Padre == -1)
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOLINEA_PADRE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                            }

                                                        }
                                                    #endregion

                                                        #region idEmbalaje_EmbalajePrincipal_SegundaUnidad
                                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                                {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }
                                                            #endregion

                                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS +
                                                                " (" +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOCABECERA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDTIPOCOMPRAVENTA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULOCOMODIN + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_DESCRIPCIONARTICULOCOMODIN + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROLINEA + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDALMACEN + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDUBICACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_CANTIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_OPERACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_PRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IMPORTE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOLINEA_PADRE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                                    "@idPedidoCabecera," +
                                                                                    "@idTipoCompraVenta," +
                                                                                    "@idArticulo," +
                                                                                    "@idArticuloComodin," +
                                                                                    "@descripcionArticuloComodin," +
                                                                                    "@numeroLinea," +
                                                                                    "@idAlmacen," +
                                                                                    "@idUbicacion," +
                                                                                    "@cantidad," +
                                                                                    "@idEmbalaje," +
                                                                                    "@relacion," +
                                                                                    "@operacion," +
                                                                                    "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                    "@segundaUnidad_relacion," +
                                                                                    "@segundaUnidad_idEmbalaje," +
                                                                                    "@segundaUnidad_cantidad," +
                                                                                    "@idNomenclaturaPrecio," +
                                                                                    "@precio," +
                                                                                    "@numeroRedondeo," +
                                                                                    "@descuentoGeneral," +
                                                                                    "@importe," +
                                                                                    "@idImpuestoTipo," +
                                                                                    "@idPedidoLinea_Padre," +
                                                                                    "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                    "@embalajePrincipalDelArticulo_relacion," +
                                                                                    "@embalajePrincipalDelArticulo_operacion," +
                                                                                    "@embalajePrincipalDelArticulo_precio," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                    "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje" +
                                                                " ) ";

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                        new SqlParameter("@idPedidoCabecera", lng_idPedidosCabecera),
                                                        new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta),
                                                        lng_idArticulo > -1
                                                            ?   new SqlParameter("@idArticulo", lng_idArticulo )
                                                            :   new SqlParameter("@idArticulo",  DBNull.Value),
                                                        lng_idArticuloComodin > -1
                                                            ?   new SqlParameter("@idArticuloComodin", lng_idArticuloComodin )
                                                            :   new SqlParameter("@idArticuloComodin",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_38 != null
                                                            ?   new SqlParameter("@descripcionArticuloComodin", mdl_INTERNO_Tabla_Modelo.Objeto_38 )
                                                            :   new SqlParameter("@descripcionArticuloComodin",  DBNull.Value),
                                                        new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_39),
                                                        new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                        lng_idUbicacion > -1
                                                            ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                            :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                        new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_42),
                                                        new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                        new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_44),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                                            ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_45 )
                                                            :   new SqlParameter("@operacion",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                                            ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_46 )
                                                            :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_47 != null
                                                            ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_47 )
                                                            :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_SegundaUnidad > -1
                                                            ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                            :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                                            ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_49 )
                                                            :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                        new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                        new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_51),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_52 != null
                                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_52 )
                                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_53 != null
                                                            ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_53 )
                                                            :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_54 != null
                                                            ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_54 )
                                                            :   new SqlParameter("@importe",  DBNull.Value),
                                                        lng_idImpuestoTipo > -1
                                                            ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                            :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                        lng_idPedidoLinea_Padre > -1
                                                            ?   new SqlParameter("@idPedidoLinea_Padre", lng_idPedidoLinea_Padre )
                                                            :   new SqlParameter("@idPedidoLinea_Padre",  DBNull.Value),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_58),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                                            ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_59 )
                                                            :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                        new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_60 ),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_61 != null
                                                            ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_61 )
                                                            :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_62 != null
                                                            ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_62 )
                                                            :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                            ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                            :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value),
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                                            mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        //Todo Correcto
                                                        else
                                                        {
                                                            lng_idPedidosLineas = mdl_ValorDevuelto_Modelo.Id;

                                                            //Añadir al Diccionario
                                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_39.ToString().Trim() + "_" +
                                                                        lng_idPedidosCabecera.ToString().Trim();

                                                            g_dct_ids_VTA_PedidosLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                                else
                                                {

                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_50 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_50.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_57 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_43 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDEMBALAJE),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_40 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_40.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDALMACEN),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
       
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim() : ""),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDTIPOCOMPRAVENTA),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }

                        }
                        //###################################################################################################
                        #endregion

                        #region Comentario
                        //Comentario ###########################################################################################
                        if (lng_idPedidosLineas > -1)
                        {
                            //Si el comentario esta vacio no relleno comentario
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_64 != null)
                            {
                                #region idPedidosLineas_Comentario
                                str_AUX = lng_idPedidosLineas.ToString().Trim();

                                if (g_dct_ids_VTA_PedidosLineasComentarios.ContainsKey(str_AUX))
                                {
                                    lng_idPedidosLineas_Comentario = g_dct_ids_VTA_PedidosLineasComentarios[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidosLineas_Comentario = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_ID,
                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_IDPEDIDOLINEA,
                                                                                                                   lng_idPedidosLineas.ToString().Trim(),
                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidosLineas_Comentario > -1)
                                    {
                                        g_dct_ids_VTA_PedidosLineasComentarios.Add(str_AUX, lng_idPedidosLineas_Comentario);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idPedidosLineas_Comentario == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS +
                                                                   " (" +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_IDPEDIDOLINEA + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_COMENTARIO + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_MOSTRARIMPRESION +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idPedidoLinea," +
                                                                          "@comentario," +
                                                                          "@mostrarImpresion" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idPedidoLinea", lng_idPedidosLineas ),
                                    new SqlParameter("@comentario", mdl_INTERNO_Tabla_Modelo.Objeto_64 ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                        ?   new SqlParameter("@mostrarImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                        :   new SqlParameter("@mostrarImpresion",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS_CAMPO_COMENTARIO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_64 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_64.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_COMENTARIOS,
                                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPedidosLineas.ToString().Trim();

                                        g_dct_ids_VTA_PedidosLineasComentarios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //#######################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifaPromociones ###########################################################################################
                        if (lng_idPedidosLineas > -1)
                        {
                            //Si el codigo esta vacio no relleno tarifaspromociones
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_66 != null)
                            {
                                #region idPedidosLineas_TarifasPromociones
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim() + "_" +
                                          lng_idPedidosLineas.ToString().Trim();

                                if (g_dct_ids_VTA_PedidosLineasTarifasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idPedidosLineas_TarifasPromociones = g_dct_ids_VTA_PedidosLineasTarifasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidosLineas_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDPEDIDOLINEA,
                                                                                                                          lng_idPedidosLineas.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidosLineas_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_VTA_PedidosLineasTarifasPromociones.Add(str_AUX, lng_idPedidosLineas_TarifasPromociones);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idPedidosLineas_TarifasPromociones == -1)
                                {
                                    #region idNomenclaturaPrecio_Tarifa
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_78 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio_Tarifa = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio_Tarifa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio_Tarifa > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Tarifa);
                                            }

                                        }

                                        
                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio_Tarifa == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                                   mdl_INTERNO_Tabla_Modelo.Objeto_78.ToString().Trim(),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                       "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    #endregion

                                    #region AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_83 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                      lng_idEmpresa.ToString(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES,
                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim(),
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),

                                                           "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    #endregion

                                    #region AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES,
                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim(),
                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                          "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    #endregion

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDPEDIDOLINEA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                                "@idPedidoLinea," +
                                                                                "@codigo," +
                                                                                "@descripcion," +
                                                                                "@descuento_1," +
                                                                                "@descuento_2," +
                                                                                "@descuento_3," +
                                                                                "@descuento_4," +
                                                                                "@descuento_5," +
                                                                                "@incremento," +
                                                                                "@numeroRedondeo," +
                                                                                "@tipo," +
                                                                                "@precioFijoDinamico," +
                                                                                "@precio," +
                                                                                "@idNomenclaturaPrecio," +
                                                                                "@descuentoMoneda," +
                                                                                "@AB_Cantidad_A," +
                                                                                "@AB_Cantidad_B," +
                                                                                "@AB_Porcentaje," +
                                                                                "@AB_idArticulo," +
                                                                                "@AB_idEmbalaje," +
                                                                                "@AB_Cancelado," +
                                                                                "@orden," +
                                                                                "@mensaje_Error," +
                                                                                "@desactivado," +
                                                                                "@noAplicarTarifa," +
                                                                                "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idPedidoLinea", lng_idPedidosLineas),
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_66),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_67),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_68 != null
                                            ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_68 )
                                            :   new SqlParameter("@descuento_1",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                            ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                            :   new SqlParameter("@descuento_2",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_70 != null
                                            ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_70 )
                                            :   new SqlParameter("@descuento_3",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_71 != null
                                            ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_71 )
                                            :   new SqlParameter("@descuento_4",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                            ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                            :   new SqlParameter("@descuento_5",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                            ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                            :   new SqlParameter("@incremento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_75 ),
                                        new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_76 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_77 != null
                                            ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_77 )
                                            :   new SqlParameter("@precio",  DBNull.Value),
                                        lng_idNomenclaturaPrecio_Tarifa > -1
                                            ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio_Tarifa )
                                            :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_79 != null
                                            ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                            :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_80 != null
                                            ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_80 )
                                            :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                            ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                            :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                            ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                            :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                        lng_AB_idArticulo > -1
                                            ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                            :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                        lng_AB_idEmbalaje > -1
                                            ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                            :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_85 != null
                                            ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                            :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                        new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_86 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_87 != null
                                            ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_87 )
                                            :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_88 != null
                                            ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_88 )
                                            :   new SqlParameter("@desactivado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_89!= null
                                            ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_89 )
                                            :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_90 != null
                                            ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_90 )
                                            :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_66 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //TodoCorrecto
                                    else
                                    {
                                        lng_idPedidosLineas_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim() + "_" +
                                                  lng_idPedidosLineas.ToString().Trim();

                                        g_dct_ids_VTA_PedidosLineasTarifasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idPedidosLineas_TarifasPromociones > -1)
                        {
                            //Si el principio de condicionentes esta vacio no relleno condicionantes
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_91!= null)
                            {
                                #region idPedidosLineas_TarifasPromociones_Condicionantes
                                str_AUX = lng_idPedidosLineas_TarifasPromociones.ToString().Trim();

                                if (g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idPedidosLineas_TarifasPromociones_Condicionantes = g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idPedidosLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPEDIDOLINEATARIFAPROMOCION,
                                                                                                                                     lng_idPedidosLineas_TarifasPromociones.ToString().Trim(),
                                                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPedidosLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes.Add(str_AUX, lng_idPedidosLineas_TarifasPromociones_Condicionantes);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idPedidosLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPEDIDOLINEATARIFAPROMOCION + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idPedidoLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idPedidoLineaTarifaPromocion", lng_idPedidosLineas_TarifasPromociones ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_91 != null
                                            ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_91 )
                                            :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_92 != null
                                            ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_92 )
                                            :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_93 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_93 )
                                            :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_94 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_94 )
                                            :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_95 != null
                                            ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_95 )
                                            :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_96 != null
                                            ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_96 )
                                            :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_97 != null
                                            ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_97 )
                                            :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_98 != null
                                            ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_98 )
                                            :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_99 != null
                                            ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_99 )
                                            :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR,
                                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_91 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim() : ""),
                                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosdeCompra),
                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPedidosLineas_TarifasPromociones.ToString().Trim();

                                        g_dct_ids_VTA_PedidosLineasTarifasPromocionesCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idPedidosCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idPedidoCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@descuentoFinalAlbaran_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";

                        foreach (long lng_idPedidoCabecera in lst_idPedidosCabecera_Insertados)
                        {
                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOCABECERA,
                                                                                                                                                                                lng_idPedidoCabecera,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDARTICULOCOMODIN,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID,
                                                                                                                                lng_idPedidoCabecera,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDCLIENTE,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_DESCUENTOFINALALBARAN,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_CLIENTE_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_3,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idPedidoCabecera", lng_idPedidoCabecera),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                        new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                        new SqlParameter("@descuentoFinalAlbaran_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA,
                                                                                                                                               lng_idPedidoCabecera.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idPedidoCabecera.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_VTA_PedidosCabecerasResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN,
                                                                                                                                   lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN,
                                                                                                                                   lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA,
                                                                                                                                                        lng_idPedidoCabecera.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                        lng_idPedidoCabecera.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                        "");

                            }
                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorPedidoCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal( Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorPedidoCabecera != null && lst_TotalResumen_PorPedidoCabecera.Count > 0)
                    {
                        long lng_idPedidoCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorPedidoCabecera)
                        {
                            try
                            {
                                lng_idPedidoCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALALBARAN + "=@total_descuentoFinalAlbaran," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_BASEIMPOBIBLE+ "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_descuentoFinalAlbaran", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_descuentoFinalAlbaran",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA,
                                                                                                                                    lng_idPedidoCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_RESUMEN_CAMPO_IDPEDIDOCABECERA,
                                                                                                lng_idPedidoCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),
                                                                                                "");
                            }

                        }
                    }

                    #endregion

                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PedidosVentas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region VTA_Presupuestos
        public INTERNO_ValorDevuelto_Modelo Insertar_PresupuestosVentas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            string str_Fila = "";
            string str_Identificador = "";
            long lng_idPresupuestoCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idEmpresa = -1;
            long lng_idCliente = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idVendedor_Preventa = -1;
            long lng_idPedidoCabecera = -1;
            long lng_idDelegacion_PedidoCabecera= -1;
            long lng_idPresupuestoLineas = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idNomenclaturaPrecio_Lineas = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idArticulo = -1;
            long lng_idArticuloComodin = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idPresuspuestoLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idTipoCompraVenta = -1;
            long lng_idPresupuestoLineas_Comentario = -1;
            long lng_idPresupuestoLineas_TarifasPromociones = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idPresupuestoLineas_TarifasPromociones_Condicionantes = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;


            List<long> lst_idPresupuestosCabecera_Insertados = new List<long>();
            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        str_Identificador = "";
                        lng_idPresupuestoCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idEmpresa = -1;
                        lng_idCliente = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idVendedor_Preventa = -1;
                        lng_idPedidoCabecera = -1;
                        lng_idDelegacion_PedidoCabecera = -1;
                        lng_idPresupuestoLineas = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idNomenclaturaPrecio_Lineas = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idArticulo = -1;
                        lng_idArticuloComodin = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idPresuspuestoLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idTipoCompraVenta = -1;
                        lng_idPresupuestoLineas_Comentario = -1;
                        lng_idPresupuestoLineas_TarifasPromociones = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;
                        lng_idPresupuestoLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            #region idEmpresa
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim();

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }
                            #endregion

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                #region idDelegacion
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    #region idCliente
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();

                                    if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                    {
                                        lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idCliente > -1)
                                        {
                                            g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idCliente > -1)
                                    {
                                        #region idMoneda
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();

                                        if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                        {
                                            lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idMoneda > -1)
                                            {
                                                g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idMoneda > -1)
                                        {
                                            #region idImpuestoCabecera
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() + "_" +
                                                      lng_idEmpresa.ToString().Trim();

                                            if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                            {
                                                lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idImpuestoCabecera > -1)
                                                {
                                                    g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                }

                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idImpuestoCabecera > -1)
                                            {
                                                #region idPresupuestoCabecera
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                          lng_idDelegacion.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim() + "_" +
                                                          mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                                                if (g_dct_ids_VTA_PresupuestosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPresupuestoCabecera = g_dct_ids_VTA_PresupuestosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPresupuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                            lng_idDelegacion.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_FECHA,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPresupuestoCabecera > -1)
                                                    {
                                                        g_dct_ids_VTA_PresupuestosCabeceras.Add(str_AUX, lng_idPresupuestoCabecera);
                                                    }

                                                }
                                                #endregion

                                                //Si no existe inserto el registro
                                                if (lng_idPresupuestoCabecera == -1)
                                                {
                                                    #region idPedidoCabecera
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                                    {

                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() + "_" + 
                                                                    lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                        {
                                                            lng_idDelegacion_PedidoCabecera = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idDelegacion_PedidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idDelegacion_PedidoCabecera > -1)
                                                            {
                                                                g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_PedidoCabecera);
                                                            }

                                                        }


                                                        //si existe continuo
                                                        if (lng_idDelegacion_PedidoCabecera > -1)
                                                        {

                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() : "") + "_" +
                                                                        lng_idDelegacion_PedidoCabecera.ToString().Trim() + "_" +
                                                                        lng_idEmpresa.ToString().Trim() + "_" +
                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_20 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim() : "");
                                                            //......................................................................................

                                                            if (g_dct_ids_VTA_PedidosCabeceras.ContainsKey(str_AUX))
                                                            {
                                                                lng_idPedidoCabecera = g_dct_ids_VTA_PedidosCabeceras[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idPedidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                        lng_idDelegacion_PedidoCabecera.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_20.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idPedidoCabecera > -1)
                                                                {
                                                                    g_dct_ids_VTA_PedidosCabeceras.Add(str_AUX, lng_idPedidoCabecera);


                                                                }
                                                            }
                                                            if (lng_idPedidoCabecera==-1)
                                                            {

                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDPEDIDOCABECERA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        else
                                                        {

                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDPEDIDOCABECERA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idEmpleado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                                    {
                                                        
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();

                                                        if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmpleado > -1)
                                                            {
                                                                g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idEmpleado == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPLEADO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idVendedor_Preventa
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_16 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                        {
                                                            lng_idVendedor_Preventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idVendedor_Preventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_16.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idVendedor_Preventa > -1)
                                                            {
                                                                g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa);
                                                            }

                                                        }

                                                        
                                                        //Si no existe muestro error
                                                        if (lng_idVendedor_Preventa == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDVENDEDOR_PREVENTA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA +
                                                                                " (" +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_NUMERODOCUMENTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_FECHA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TIPO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_ESTADO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDCLIENTE + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDMONEDA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_SITUACION + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDVENDEDOR_PREVENTA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_RECARGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDPEDIDOCABECERA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_BASEIMPOBIBLE + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_RECARGO + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALALBARAN + "," +
                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL + 
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                            "@numeroDocumento," +
                                                                                            "@descripcion," +
                                                                                            "@idDelegacion," +
                                                                                            "@idEmpresa," +
                                                                                            "@fecha," +
                                                                                            "@tipo," +
                                                                                            "@estado," +
                                                                                            "@idCliente," +
                                                                                            "@idMoneda," +
                                                                                            "@idImpuestoCabecera," +
                                                                                            "@situacion," +
                                                                                            "@descuentoProntoPago," +
                                                                                            "@descuentoFinalFactura," +
                                                                                            "@idEmpleado," +
                                                                                            "@idVendedor_Preventa," +
                                                                                            "@recargo," +
                                                                                            "@idPedidoCabecera," +
                                                                                            "@observaciones," +
                                                                                            "@descuentoFinalAlbaran," +
                                                                                            "@total_bruto," +
                                                                                            "@total_descuentoProntoPago," +
                                                                                            "@total_descuentoFinalFactura," +
                                                                                            "@total_baseImponible," +
                                                                                            "@total_impuesto," +
                                                                                            "@total_recargo," +
                                                                                            "@total_descuentoFinalAlbaran," +
                                                                                            "@total" +
                                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@numeroDocumento", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                                        new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                        new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                        new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_6),
                                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_7),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8 != null
                                                            ?   new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_8 )
                                                            :   new SqlParameter("@estado",  DBNull.Value),
                                                        new SqlParameter("@idCliente", lng_idCliente),
                                                        new SqlParameter("@idMoneda", lng_idMoneda),
                                                        new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera),
                                                        new SqlParameter("@situacion", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                            ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                            :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                            ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                            :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                        lng_idEmpleado > -1
                                                            ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                            :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                        lng_idVendedor_Preventa > -1
                                                            ?   new SqlParameter("@idVendedor_Preventa", lng_idVendedor_Preventa )
                                                            :   new SqlParameter("@idVendedor_Preventa",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_17 != null
                                                            ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_17 )
                                                            :   new SqlParameter("@recargo",  DBNull.Value),
                                                        lng_idPedidoCabecera > -1
                                                            ?   new SqlParameter("@idPedidoCabecera", lng_idPedidoCabecera )
                                                            :   new SqlParameter("@idPedidoCabecera",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                            ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                            :   new SqlParameter("@observaciones",  DBNull.Value),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                            ?   new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                            :   new SqlParameter("@descuentoFinalAlbaran",  DBNull.Value),
                                                        new SqlParameter("@total_bruto", "0.00" ),
                                                        new SqlParameter("@total_descuentoProntoPago", "0.00" ),
                                                        new SqlParameter("@total_descuentoFinalFactura", "0.00" ),
                                                        new SqlParameter("@total_baseImponible", "0.00" ),
                                                        new SqlParameter("@total_impuesto","0.00" ),
                                                        new SqlParameter("@total_recargo", "0.00" ),
                                                        new SqlParameter("@total_descuentoFinalAlbaran", "0.00" ),
                                                        new SqlParameter("@total", "0.00" )
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idPresupuestoCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                        lst_idPresupuestosCabecera_Insertados.Add(lng_idPresupuestoCabecera);

                                                        //Añadir al Diccionario
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                                  lng_idDelegacion.ToString().Trim() + "_" +
                                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                                                        g_dct_ids_VTA_PresupuestosCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_11 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_11.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDMONEDA),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDCLIENTE),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDDELEGACION),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPRESA),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);

                            }
                        }
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA))
                        {
                            //idEmpresa
                            if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""];
                            }

                            //idDelegacion
                            if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                            {
                                lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                            }

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                      lng_idDelegacion.ToString().Trim() + "_" +
                                      lng_idEmpresa.ToString().Trim() + "_" +
                                      (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "");
                            //......................................................................................

                            if (!g_dct_ids_VTA_PresupuestosCabeceras.ContainsKey(str_AUX))
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPONOENCONTRADO_CONTROLADO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_ID,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_FECHA,
                                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : "")),
                                                                                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                            }
                            else
                            {
                                //Presupuesto Cabecera
                                lng_idPresupuestoCabecera = g_dct_ids_VTA_PresupuestosCabeceras[str_AUX];

                                #region idAlmacen
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" +
                                        lng_idEmpresa.ToString().Trim();

                                if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                {
                                    lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                }
                                else
                                {
                                    lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlmacen > -1)
                                    {
                                        g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idAlmacen > -1)
                                {
                                    #region idEmbalaje
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();

                                    if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                    {
                                        lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEmbalaje > -1)
                                        {
                                            g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idEmbalaje > -1)
                                    {
                                        #region idEmbalaje_EmbalajePrincipal
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim();

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                        {
                                            #region idNomenclaturaPrecio_Lineas
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim();

                                            if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                            {
                                                lng_idNomenclaturaPrecio_Lineas = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idNomenclaturaPrecio_Lineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_37.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idNomenclaturaPrecio_Lineas > -1)
                                                {
                                                    g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio_Lineas);
                                                }

                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idNomenclaturaPrecio_Lineas > -1)
                                            {
                                                #region idPresupuestoLineas
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() + "_" +
                                                                    lng_idPresupuestoCabecera.ToString().Trim();

                                                if (g_dct_ids_VTA_PresupuestosLineas.ContainsKey(str_AUX))
                                                {
                                                    lng_idPresupuestoLineas = g_dct_ids_VTA_PresupuestosLineas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPresupuestoLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                lng_idPresupuestoCabecera.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPresupuestoLineas > -1)
                                                    {
                                                        g_dct_ids_VTA_PresupuestosLineas.Add(str_AUX, lng_idPresupuestoLineas);
                                                    }

                                                }
                                                #endregion

                                                //si no existe inserto
                                                if (lng_idPresupuestoLineas == -1)
                                                {
                                                    #region idArticulo
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() + "_" +
                                                                    lng_idEmpresa.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idArticulo > -1)
                                                            {
                                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idArticulo == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idArticuloComodin
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                                    {
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim() + "_" +
                                                                    lng_idEmpresa.ToString().Trim();

                                                        if (g_dct_ids_MAE_ArticulosComodin.ContainsKey(str_AUX))
                                                        {
                                                            lng_idArticuloComodin = g_dct_ids_MAE_ArticulosComodin[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idArticuloComodin = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idArticuloComodin > -1)
                                                            {
                                                                g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, lng_idArticuloComodin);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idArticuloComodin == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULOCOMODIN),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idUbicacion
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                                {
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim() + "_" +
                                                                lng_idEmpresa.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                    {
                                                        lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idUbicacion > -1)
                                                        {
                                                            g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                        }

                                                    }


                                                    //Si no existe muestro error
                                                    if (lng_idUbicacion == -1)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDUBICACION),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                }
                                                #endregion

                                                    #region idEmbalaje_SegundaUnidad
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_35 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmbalaje_SegundaUnidad > -1)
                                                            {
                                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idEmbalaje_SegundaUnidad == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_35.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    #region idImpuestoTipo
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_42 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                        {
                                                            lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idImpuestoTipo > -1)
                                                            {
                                                                g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idImpuestoTipo == -1)
                                                        {

                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_42.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                               "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idPresuspuestoLinea_Padre
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_43 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim() + "_" +
                                                                     lng_idPresupuestoCabecera.ToString().Trim(); 
                                                        //......................................................................................

                                                        if (g_dct_ids_VTA_PresupuestosLineas.ContainsKey(str_AUX))
                                                        {
                                                            lng_idPresuspuestoLinea_Padre = g_dct_ids_VTA_PresupuestosLineas[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idPresuspuestoLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_43.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                        lng_idPresupuestoCabecera.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idPresuspuestoLinea_Padre > -1)
                                                            {
                                                                g_dct_ids_VTA_PresupuestosLineas.Add(str_AUX, lng_idPresuspuestoLinea_Padre);
                                                            }

                                                        }


                                                        //Si no existe muestro error
                                                        if (lng_idPresuspuestoLinea_Padre == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOLINEA_PADRE),
                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                              "Nº linea:" + int_Contador_Linea_Excel);
                                                        }

                                                    }
                                                    #endregion

                                                    #region idEmbalaje_EmbalajePrincipal_SegundaUnidad 
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                        {
                                                            lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                            {
                                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                            }

                                                        }



                                                        //Si no existe muestro error
                                                        if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                              Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                          mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim(),
                                                                                                                          Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                              nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                              "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                    }
                                                    #endregion

                                                    #region idTipoCompraVenta
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_51 != null)
                                                    {
                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim();
                                                        //......................................................................................

                                                        if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                                        {
                                                            lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                                        }
                                                        else
                                                        {
                                                            lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            //Añadir al Diccionario
                                                            if (lng_idTipoCompraVenta > -1)
                                                            {
                                                                g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                                            }

                                                        }



                                                        //Si no existe muestro error
                                                        if (lng_idTipoCompraVenta == -1)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDTIPOCOMPRAVENTA),
                                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                             "Nº linea:" + int_Contador_Linea_Excel);

                                                        }
                                                    }
                                                    #endregion

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS +
                                                                " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOCABECERA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULOCOMODIN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_DESCRIPCIONARTICULOCOMODIN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_NUMEROLINEA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDALMACEN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDUBICACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_CANTIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_OPERACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_PRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IMPORTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOLINEA_PADRE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDTIPOCOMPRAVENTA +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                                "@idPresupuestoCabecera," +
                                                                                "@idArticulo," +
                                                                                "@idArticuloComodin," +
                                                                                "@descripcionArticuloComodin," +
                                                                                "@numeroLinea," +
                                                                                "@idAlmacen," +
                                                                                "@idUbicacion," +
                                                                                "@cantidad," +
                                                                                "@idEmbalaje," +
                                                                                "@relacion," +
                                                                                "@operacion," +
                                                                                "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                "@segundaUnidad_relacion," +
                                                                                "@segundaUnidad_idEmbalaje," +
                                                                                "@segundaUnidad_cantidad," +
                                                                                "@idNomenclaturaPrecio," +
                                                                                "@precio," +
                                                                                "@numeroRedondeo," +
                                                                                "@descuentoGeneral," +
                                                                                "@importe," +
                                                                                "@idImpuestoTipo," +
                                                                                "@idPresupuestoLinea_Padre," +
                                                                                "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                "@embalajePrincipalDelArticulo_relacion," +
                                                                                "@embalajePrincipalDelArticulo_operacion," +
                                                                                "@embalajePrincipalDelArticulo_precio," +
                                                                                "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje," +
                                                                                "@idTipoCompraVenta" +
                                                                " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                    new SqlParameter("@idPresupuestoCabecera", lng_idPresupuestoCabecera),
                                                    lng_idArticulo > -1
                                                                ?   new SqlParameter("@idArticulo", lng_idArticulo )
                                                                :   new SqlParameter("@idArticulo",  DBNull.Value),
                                                    lng_idArticuloComodin > -1
                                                                ?   new SqlParameter("@idArticuloComodin", lng_idArticuloComodin )
                                                                :   new SqlParameter("@idArticuloComodin",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                        ?   new SqlParameter("@descripcionArticuloComodin", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                        :   new SqlParameter("@descripcionArticuloComodin",  DBNull.Value),
                                                    new SqlParameter("@numeroLinea", mdl_INTERNO_Tabla_Modelo.Objeto_26),
                                                    new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                    lng_idUbicacion > -1
                                                        ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                        :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                    new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_29),
                                                    new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                    new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_31),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                        ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                        :   new SqlParameter("@operacion",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_33!= null
                                                        ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                        :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                        ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                        :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                    lng_idEmbalaje_SegundaUnidad > -1
                                                        ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                        :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                        ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_36 )
                                                        :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                    new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio_Lineas),
                                                    new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_38),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                                        ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_39 )
                                                        :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                                        ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_40 )
                                                        :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_41!= null
                                                        ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                                        :   new SqlParameter("@importe",  DBNull.Value),
                                                    lng_idImpuestoTipo > -1
                                                        ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                        :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                    lng_idPresuspuestoLinea_Padre > -1
                                                        ?   new SqlParameter("@idPresupuestoLinea_Padre", lng_idPresuspuestoLinea_Padre )
                                                        :   new SqlParameter("@idPresupuestoLinea_Padre",  DBNull.Value),
                                                    new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                    new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_45),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_46!= null
                                                        ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_46 )
                                                        :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                    new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_47 ),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                                        ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                                        :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                    mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                                        ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_49 )
                                                        :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                        ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                        :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value),
                                                    new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta )
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() : ""),
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                    }
                                                    //Todo Correcto
                                                    else
                                                    {
                                                        lng_idPresupuestoLineas = mdl_ValorDevuelto_Modelo.Id;

                                                        //Añadir al Diccionario
                                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() + "_" +
                                                                    lng_idArticulo.ToString().Trim() + "_" +
                                                                    lng_idArticuloComodin.ToString().Trim() + "_" +
                                                                    lng_idAlmacen.ToString().Trim() + "_" +
                                                                    lng_idEmbalaje.ToString().Trim();

                                                        g_dct_ids_VTA_PresupuestosLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }

                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_66 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_44 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_44.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDEMBALAJE),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {

                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                   Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                               (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() : ""),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDALMACEN),
                                                                                   nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                   "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                        }
                        //###################################################################################################
                        #endregion

                        #region Comentario
                        //Comentario ###########################################################################################
                        if (lng_idPresupuestoLineas > -1)
                        {
                            //Si el comentario esta vacio no relleno comentario
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_52 != null)
                            {

                                #region idPresupuestoLineas_Comentario
                                str_AUX = lng_idPresupuestoLineas.ToString().Trim();
                               
                                if (g_dct_ids_VTA_PresupuestosLineasComentarios.ContainsKey(str_AUX))
                                {
                                    lng_idPresupuestoLineas_Comentario = g_dct_ids_VTA_PresupuestosLineasComentarios[str_AUX];
                                }
                                else
                                {
                                    lng_idPresupuestoLineas_Comentario = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS_CAMPO_IDPRESUPUESTOLINEA,
                                                                                                                  lng_idPresupuestoLineas.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPresupuestoLineas_Comentario > -1)
                                    {
                                        g_dct_ids_VTA_PresupuestosLineasComentarios.Add(str_AUX, lng_idPresupuestoLineas_Comentario);
                                    }

                                }
                                #endregion


                                //si no existe inserto
                                if (lng_idPresupuestoLineas_Comentario == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS +
                                                                   " (" +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS_CAMPO_IDPRESUPUESTOLINEA + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS_CAMPO_COMENTARIO + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_COMENTARIOS_CAMPO_MOSTRARIMPRESION +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idPresupuestoLinea," +
                                                                          "@comentario," +
                                                                          "@mostrarImpresion" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idPresupuestoLinea", lng_idPresupuestoLineas ),
                                    new SqlParameter("@comentario", mdl_INTERNO_Tabla_Modelo.Objeto_52 ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_53 != null
                                        ?   new SqlParameter("@mostrarImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_53 )
                                        :   new SqlParameter("@mostrarImpresion",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPresupuestoLineas.ToString().Trim();

                                        g_dct_ids_VTA_PresupuestosLineasComentarios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //#######################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifaPromociones ###########################################################################################
                        if (lng_idPresupuestoLineas > -1)
                        {
                            //Si el codigo esta vacio no relleno TarifasPromociones
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_54!= null)
                            {
                                #region idPresupuestoLineas_TarifasPromociones
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() + "_" +
                                          lng_idPresupuestoLineas.ToString().Trim();

                                if (g_dct_ids_VTA_PresupuestosLineasTarifasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idPresupuestoLineas_TarifasPromociones = g_dct_ids_VTA_PresupuestosLineasTarifasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idPresupuestoLineas_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDPRESUPUESTOLINEA,
                                                                                                                              lng_idPresupuestoLineas.ToString().Trim(),
                                                                                                                              Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPresupuestoLineas_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_VTA_PresupuestosLineasTarifasPromociones.Add(str_AUX, lng_idPresupuestoLineas_TarifasPromociones);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idPresupuestoLineas_TarifasPromociones == -1)
                                {
                                    #region idNomenclaturaPrecio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_66 != null)
                                    {
                                       
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim();
                                    
                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_66.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                            
                                        }
                                    }
                                    #endregion

                                    #region AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_71 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                      lng_idEmpresa.ToString(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_71.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    #endregion

                                    #region AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_72 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }

                                        }

                                        

                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_72.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    #endregion 

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDPRESUPUESTOLINEA + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                                   "@idPresupuestoLinea," +
                                                                                   "@codigo," +
                                                                                   "@descripcion," +
                                                                                   "@descuento_1," +
                                                                                   "@descuento_2," +
                                                                                   "@descuento_3," +
                                                                                   "@descuento_4," +
                                                                                   "@descuento_5," +
                                                                                   "@incremento," +
                                                                                   "@numeroRedondeo," +
                                                                                   "@tipo," +
                                                                                   "@precioFijoDinamico," +
                                                                                   "@precio," +
                                                                                   "@idNomenclaturaPrecio," +
                                                                                   "@descuentoMoneda," +
                                                                                   "@AB_Cantidad_A," +
                                                                                   "@AB_Cantidad_B," +
                                                                                   "@AB_Porcentaje," +
                                                                                   "@AB_idArticulo," +
                                                                                   "@AB_idEmbalaje," +
                                                                                   "@AB_Cancelado," +
                                                                                   "@orden," +
                                                                                   "@mensaje_Error," +
                                                                                   "@desactivado," +
                                                                                   "@noAplicarTarifa," +
                                                                                   "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idPresupuestoLinea", lng_idPresupuestoLineas),
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_54),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_55),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_56 != null
                                            ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_56 )
                                            :   new SqlParameter("@descuento_1",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_57 != null
                                            ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_57 )
                                            :   new SqlParameter("@descuento_2",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_58 != null
                                            ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_58 )
                                            :   new SqlParameter("@descuento_3",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                            ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_59)
                                            :   new SqlParameter("@descuento_4",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_60 != null
                                            ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_60 )
                                            :   new SqlParameter("@descuento_5",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_61 != null
                                            ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_61 )
                                            :   new SqlParameter("@incremento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_62 != null
                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_62 )
                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_63 ),
                                        new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_64 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                            ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                            :   new SqlParameter("@precio",  DBNull.Value),
                                        lng_idNomenclaturaPrecio > -1
                                            ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio )
                                            :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                            ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                            :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_68 != null
                                            ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_68 )
                                            :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                            ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                            :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_70 != null
                                            ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_70 )
                                            :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                        lng_AB_idArticulo > -1
                                            ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                            :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                        lng_AB_idEmbalaje > -1
                                            ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                            :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                            ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                            :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                        new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_74 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_75 != null
                                            ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_75 )
                                            :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_76 != null
                                            ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_76 )
                                            :   new SqlParameter("@desactivado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_77!= null
                                            ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_77 )
                                            :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_78 != null
                                            ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_78 )
                                            :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //TodoCorrecto
                                    else
                                    {
                                        lng_idPresupuestoLineas_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX =   mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() + "_" +
                                                    lng_idPresupuestoLineas.ToString().Trim();

                                        g_dct_ids_VTA_PresupuestosLineasTarifasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idPresupuestoLineas_TarifasPromociones > -1)
                        {
                            //Si no esta lo rimero de condicionantes no lo relleno
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_80 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_81 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_82 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_83 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_86 != null ||
                                mdl_INTERNO_Tabla_Modelo.Objeto_87 != null)
                            {
                                #region idPresupuestoLineas_TarifasPromociones_Condicionantes
                                str_AUX = lng_idPresupuestoLineas_TarifasPromociones.ToString().Trim();
                                
                                if (g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idPresupuestoLineas_TarifasPromociones_Condicionantes = g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idPresupuestoLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPRESUPUESTOLINEATARIFAPROMOCION,
                                                                                                                                         lng_idPresupuestoLineas_TarifasPromociones.ToString().Trim(),
                                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idPresupuestoLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes.Add(str_AUX, lng_idPresupuestoLineas_TarifasPromociones_Condicionantes);
                                    }

                                }
                                #endregion


                                //si no existe inserto
                                if (lng_idPresupuestoLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDPRESUPUESTOLINEATARIFAPROMOCION + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idPresupuestoLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idPresupuestoLineaTarifaPromocion", lng_idPresupuestoLineas_TarifasPromociones ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_79 != null
                                            ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                            :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_80 != null
                                            ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_80 )
                                            :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                            :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                            ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                            :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_83 != null
                                            ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_83 )
                                            :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_84!= null
                                            ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_84 )
                                            :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_85!= null
                                            ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_85 )
                                            :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_86!= null
                                            ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_86 )
                                            :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_87 != null
                                            ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_87 )
                                            :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR,
                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_79 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_79.ToString().Trim() : ""),
                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idPresupuestoLineas_TarifasPromociones.ToString().Trim();

                                        g_dct_ids_VTA_PresupuestosLineasTarifasPromocionesCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;
                    }

                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idPresupuestosCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idPresupuestoCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@descuentoFinalAlbaran_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";
                        foreach (long lng_idPresupuestoCabecera_AUX in lst_idPresupuestosCabecera_Insertados)
                        {

                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo =  Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                                                                lng_idPresupuestoCabecera_AUX,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDARTICULOCOMODIN,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_ID,
                                                                                                                                lng_idPresupuestoCabecera_AUX,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDCLIENTE,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_DESCUENTOFINALALBARAN,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_CLIENTE_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_3,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idPresupuestoCabecera", lng_idPresupuestoCabecera_AUX),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                        new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                        new SqlParameter("@descuentoFinalAlbaran_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                               lng_idPresupuestoCabecera_AUX.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idPresupuestoCabecera_AUX.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_VTA_PresupuestosCabecerasResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN,
                                                                                                                                   lng_idPresupuestoCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN,
                                                                                                                                   lng_idPresupuestoCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                                        lng_idPresupuestoCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                        lng_idPresupuestoCabecera_AUX.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                        "");

                            }
                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorPresupuestoCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal( Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorPresupuestoCabecera != null && lst_TotalResumen_PorPresupuestoCabecera.Count > 0)
                    {
                        long lng_idPresupuestoCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorPresupuestoCabecera)
                        {
                            try
                            {
                                lng_idPresupuestoCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOPRONTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_DESCUENTOFINALALBARAN + "=@total_descuentoFinalAlbaran," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_BASEIMPOBIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_descuentoFinalAlbaran", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_descuentoFinalAlbaran",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                                                    lng_idPresupuestoCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PRESUPUESTOSCABECERA_RESUMEN_CAMPO_IDPRESUPUESTOCABECERA,
                                                                                                lng_idPresupuestoCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),
                                                                                                "");
                            }

                        }
                    }

                    #endregion

                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas),"");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_PresupuestosVentas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region VTA_RemesasAcumulados
        public INTERNO_ValorDevuelto_Modelo Insertar_VTA_RemesasAcumulados(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
            
            long lng_idRemesaAcumulado = -1;
            long lng_idEmpresa = -1;
            long lng_idCuentaBancariaSEPA_Cobro = -1;
            long lng_idEmpresa_CuentaBancariaSEPA_Cobro = -1;
            long lng_idCliente = -1;
            string str_AUX = "";


            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................

                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        lng_idRemesaAcumulado = -1;
                        lng_idEmpresa = -1;
                        lng_idCuentaBancariaSEPA_Cobro = -1;
                        lng_idEmpresa_CuentaBancariaSEPA_Cobro = -1;
                        lng_idCliente = -1;
                        str_AUX = "";
                        #endregion

                        //Compruebo si existe el registro en base de datos por el codigo .......................
                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim();
                        //......................................................................................

                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                        {
                            lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                        }
                        else
                        {
                            lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                            //Añadir al Diccionario
                            if (lng_idEmpresa > -1)
                            {
                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                            }

                        }

                       

                        //si existe el registro continuo
                        if (lng_idEmpresa > -1)
                        {
                            //Si contiene algo busco el idCliente
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                {
                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                }
                                else
                                {
                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idCliente > -1)
                                    {
                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                    }

                                }

                                
                                //Si no lo encontro muestro mensaje de error
                                if (lng_idCliente == -1)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("",
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCLIENTE),
                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_CarteraVentas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                //todo correcto calculo remesa acumulado por el cliente
                                else
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = lng_idCliente.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_VTA_RemesasAcumulados.ContainsKey(str_AUX))
                                    {
                                        lng_idRemesaAcumulado = g_dct_ids_VTA_RemesasAcumulados[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRemesaAcumulado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_ID,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCLIENTE,
                                                                                                lng_idCliente.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA,
                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRemesaAcumulado > -1)
                                        {
                                            g_dct_ids_VTA_RemesasAcumulados.Add(str_AUX, lng_idRemesaAcumulado);
                                        }

                                    }

                                    
                                }
                            }

                            //Si no existe inserto el registro
                            if (lng_idRemesaAcumulado == -1)
                            {
                                //Si contiene algo busco el idCuentasBancarias
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                {
                                    string[] arr_string_PedidoCabecera = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim().Split(',');

                                    if (arr_string_PedidoCabecera.Count() == 2)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = arr_string_PedidoCabecera[0].Trim().Length > 0 ? arr_string_PedidoCabecera[0].Trim() : "";
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                        {
                                            lng_idEmpresa_CuentaBancariaSEPA_Cobro = g_dct_ids_GEN_Empresas[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idEmpresa_CuentaBancariaSEPA_Cobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                                    arr_string_PedidoCabecera[0].Trim().Length > 0 ? arr_string_PedidoCabecera[0].Trim() : "",
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idEmpresa_CuentaBancariaSEPA_Cobro > -1)
                                            {
                                                g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_CuentaBancariaSEPA_Cobro);
                                            }

                                        }

                                        
                                        //si existe continuo
                                        if (lng_idEmpresa_CuentaBancariaSEPA_Cobro > -1)
                                        {
                                            //Cliente
                                            if(lng_idCliente > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = (arr_string_PedidoCabecera[2].Trim().Length > 0 ? arr_string_PedidoCabecera[2].Trim() : "") + "_" +
                                                          lng_idEmpresa_CuentaBancariaSEPA_Cobro.ToString().Trim() + "_" +
                                                          lng_idCliente.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_CuentasbancariasSEPACobros.ContainsKey(str_AUX))
                                                {
                                                    lng_idCuentaBancariaSEPA_Cobro = g_dct_ids_MAE_CuentasbancariasSEPACobros[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idCuentaBancariaSEPA_Cobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA,
                                                                                                                           arr_string_PedidoCabecera[2].Trim().Length > 0 ? arr_string_PedidoCabecera[2].Trim() : "",
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDEMPRESA,
                                                                                                                           lng_idEmpresa_CuentaBancariaSEPA_Cobro.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDCLIENTE,
                                                                                                                           lng_idCliente.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idCuentaBancariaSEPA_Cobro > -1)
                                                    {
                                                        g_dct_ids_MAE_CuentasbancariasSEPACobros.Add(str_AUX, lng_idCuentaBancariaSEPA_Cobro);
                                                    }

                                                }

                                                
                                            }
                                            //Socio
                                            else
                                            {

                                            }
                                            
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                            arr_string_PedidoCabecera[0].Trim().Length > 0 ? arr_string_PedidoCabecera[0].Trim() : "",
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCUENTABANCARIASEPA_COBRO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("",
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCUENTABANCARIASEPA_COBRO),
                                                                             nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                                string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS +
                                                        " (" +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCUENTABANCARIASEPA_COBRO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCLIENTE + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IMPORTE + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_CONCEPTO + "," +
                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_POSICION +
                                                        " ) " +
                                                        " OUTPUT INSERTED.id " +
                                                        " VALUES " +
                                                        " ( " +
                                                              "@idCuentaBancariaSEPA_Cobro," +
                                                              "@idCliente," +
                                                              "@idEmpresa," +
                                                              "@importe," +
                                                              "@concepto," +
                                                              "@posicion" +
                                                        " ) ";

                                //Parametros
                                object[] arr_Parametros_Insert = new object[]
                                {
                                    lng_idCuentaBancariaSEPA_Cobro > -1
                                        ?   new SqlParameter("@idCuentaBancariaSEPA_Cobro", lng_idCuentaBancariaSEPA_Cobro )
                                        :   new SqlParameter("@idCuentaBancariaSEPA_Cobro",  DBNull.Value),
                                    lng_idCliente > -1
                                        ?   new SqlParameter("@idCliente", lng_idCliente )
                                        :   new SqlParameter("@idCliente",  DBNull.Value),
                                    new SqlParameter("@idEmpresa", lng_idEmpresa),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_4 != null
                                        ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_4 )
                                        :   new SqlParameter("@importe",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_5 != null
                                        ?   new SqlParameter("@concepto", mdl_INTERNO_Tabla_Modelo.Objeto_5 )
                                        :   new SqlParameter("@concepto",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_6 != null
                                        ?   new SqlParameter("@posicion", mdl_INTERNO_Tabla_Modelo.Objeto_6 )
                                        :   new SqlParameter("@posicion",  DBNull.Value)
                                };

                                //Llamamos a la funcion de insertar
                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                                else
                                {
                                    //Añadir al Diccionario
                                    str_AUX = lng_idCliente.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();

                                    g_dct_ids_VTA_RemesasAcumulados.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_YA_EXISTE_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS),
                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        else
                        {
                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                        }

                        int_Contador_Linea_Excel += 1;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_VTA_RemesasAcumulados), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region VTA_RemesasCabecera
        public INTERNO_ValorDevuelto_Modelo Insertar_RemesasVenta(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo,object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Identificador
            string str_Identificador = "";
            long lng_idRemesaCabecera = -1;
            long lng_idEmpresa = -1;
            long lng_idDelegacion = -1;
            long lng_idTesoreria = -1;
            long lng_idPredefinidoCabecera_Remesa = -1;
            long lng_idPredefinidoCabecera_Negociacion = -1;
            long lng_idPredefinidoCabecera_CobroManual = -1;
            long lng_idRecepcionFichero = -1;
            long lng_idRemesaLineas = -1;
            long lng_idFacturaCabecera = -1;
            long lng_idEmpresa_numeroFactura = -1;
            long lng_idDelegacion_numeroFactura = -1;
            long lng_numeroFactura = -1;
            long lng_idVencimiento = -1;
            long lng_idRemesaAcumulado = -1;
            long lng_idEmpresa_idRemesaAcumulado = -1;
            long lng_idCuentaBancariaSEPA_Cobro = -1;
            long lng_idEmpresa_idCuentaBancariaSEPA_Cobro = -1;
            long lng_idCliente = -1;
            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {
                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Identificador = "";
                        lng_idRemesaCabecera = -1;
                        lng_idEmpresa = -1;
                        lng_idDelegacion = -1;
                        lng_idTesoreria = -1;
                        lng_idPredefinidoCabecera_Remesa = -1;
                        lng_idPredefinidoCabecera_Negociacion = -1;
                        lng_idPredefinidoCabecera_CobroManual = -1;
                        lng_idRecepcionFichero = -1;
                        lng_idRemesaLineas = -1;
                        lng_idFacturaCabecera = -1;
                        lng_idEmpresa_numeroFactura = -1;
                        lng_idDelegacion_numeroFactura = -1;
                        lng_numeroFactura = -1;
                        lng_idVencimiento = -1;
                        lng_idRemesaAcumulado = -1;
                        lng_idEmpresa_idRemesaAcumulado = -1;
                        lng_idCuentaBancariaSEPA_Cobro = -1;
                        lng_idEmpresa_idCuentaBancariaSEPA_Cobro = -1;
                        lng_idCliente = -1;
                        str_AUX = "";
                        #endregion

                        //Obtengo el identificador del documento
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_CABECERA))
                        {
                            //Inicializo la variable principal
                            lng_idRemesaCabecera = -1;

                            //Compruebo si existe el registro en base de datos por el codigo .......................
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim();
                            //......................................................................................

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                     Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }
                            }

                            
                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }

                                

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_VTA_RemesasCabecera.ContainsKey(str_AUX))
                                    {
                                        lng_idRemesaCabecera = g_dct_ids_VTA_RemesasCabecera[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idRemesaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDDELEGACION,
                                                                                                        lng_idDelegacion.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idRemesaCabecera > -1)
                                        {
                                            g_dct_ids_VTA_RemesasCabecera.Add(str_AUX, lng_idRemesaCabecera);
                                        }

                                    }

                                    


                                    //Si no existe inserto el registro
                                    if (lng_idRemesaCabecera == -1)
                                    {
                                        //Si contiene algo busco el idTesoreria
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() + "_" +
                                                      lng_idEmpresa.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Tesorerias.ContainsKey(str_AUX))
                                            {
                                                lng_idTesoreria = g_dct_ids_MAE_Tesorerias[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idTesoreria = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_CODIGO,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_MAE_TESORERIAS_CAMPO_IDEMPRESA,
                                                                                                           lng_idEmpresa.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idTesoreria > -1)
                                                {
                                                    g_dct_ids_MAE_Tesorerias.Add(str_AUX, lng_idTesoreria);
                                                }

                                            }

                                            
                                            //Si no existe muestro error
                                            if (lng_idTesoreria == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDTESORERIA),
                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPredefinidoCabecera_Remesas
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_7 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                            {
                                                lng_idPredefinidoCabecera_Remesa = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPredefinidoCabecera_Remesa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPredefinidoCabecera_Remesa > -1)
                                                {
                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Remesa);
                                                }

                                            }

                                            
                                            //Si no existe muestro error
                                            if (lng_idPredefinidoCabecera_Remesa == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_7.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_REMESA),
                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPredefinidoCabecera_Negociacion
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                            {
                                                lng_idPredefinidoCabecera_Negociacion = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPredefinidoCabecera_Negociacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPredefinidoCabecera_Negociacion > -1)
                                                {
                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_Negociacion);
                                                }

                                            }

                                            
                                            //Si no existe muestro error
                                            if (lng_idPredefinidoCabecera_Negociacion == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_NEGOCIACION),
                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idPredefinidoCabecera_CobroManual
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                            {
                                                lng_idPredefinidoCabecera_CobroManual = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idPredefinidoCabecera_CobroManual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idPredefinidoCabecera_CobroManual > -1)
                                                {
                                                    g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera_CobroManual);
                                                }

                                            }

                                            
                                            //Si no existe muestro error
                                            if (lng_idPredefinidoCabecera_CobroManual == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_COBROMANUAL),
                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        //Si contiene algo busco el idRecepcionFichero
                                        if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_PRV_RecepcionFicheros.ContainsKey(str_AUX))
                                            {
                                                lng_idRecepcionFichero = g_dct_ids_PRV_RecepcionFicheros[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idRecepcionFichero = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_PRV_RECEPCIONFICHEROS,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_PRV_RECEPCIONFICHEROS_CAMPO_ID,
                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_PRV_RECEPCIONFICHEROS_CAMPO_TEXTO,
                                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                  Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idRecepcionFichero > -1)
                                                {
                                                    g_dct_ids_PRV_RecepcionFicheros.Add(str_AUX, lng_idRecepcionFichero);
                                                }

                                            }

                                            
                                            //Si no existe muestro error
                                            if (lng_idRecepcionFichero == -1)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDRECEPCIONFICHERO),
                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }

                                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA +
                                                                    " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_OPCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_CODIGO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDTESORERIA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_REMESA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_NEGOCIACION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDPREDEFINIDOCABECERA_COBROMANUAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_RECURRENTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_FECHA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_NEGOCIAR + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_FECHAVENCIMIENTOSCOBROS + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_ENVIO_BLOQUEADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_COBRO_BLOQUEADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IMPORTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_TIPOCAPTURA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_TIPOCAPTURA_FECHA_INICIO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_TIPOCAPTURA_FECHA_FINAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_TIPOCAPTURA_NEGATIVOS + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_FECHAENVIOFICHERO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_NORMA_TIPO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_NORMA_FORMATO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_NORMA_TIPOFECHA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_RESUMEN_ACUMULAR + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_RESUMEN_ACUMULARNEGATIVOS + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_ESTADO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_RESPUESTABANCORECIBIDA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDRECEPCIONFICHERO +
                                                                    " ) " +
                                                                    " OUTPUT INSERTED.id " +
                                                                    " VALUES " +
                                                                    " ( " +
                                                                               "@opcion," +
                                                                               "@codigo," +
                                                                               "@idEmpresa," +
                                                                               "@idDelegacion," +
                                                                               "@idTesoreria," +
                                                                               "@idPredefinidoCabecera_Remesa," +
                                                                               "@idPredefinidoCabecera_Negociacion," +
                                                                               "@idPredefinidoCabecera_CobroManual," +
                                                                               "@observaciones," +
                                                                               "@recurrente," +
                                                                               "@fecha," +
                                                                               "@negociar," +
                                                                               "@fechaVencimientosCobros," +
                                                                               "@envio_Bloqueado," +
                                                                               "@cobro_Bloqueado," +
                                                                               "@importe," +
                                                                               "@tipoCaptura," +
                                                                               "@tipoCaptura_Fecha_Inicio," +
                                                                               "@tipoCaptura_Fecha_Final," +
                                                                               "@tipoCaptura_Negativos," +
                                                                               "@fechaEnvioFichero," +
                                                                               "@norma_Tipo," +
                                                                               "@norma_Formato," +
                                                                               "@norma_TipoFecha," +
                                                                               "@resumen_Acumular," +
                                                                               "@resumen_AcumularNegativos," +
                                                                               "@estado," +
                                                                               "@respuestaBancoRecibida," +
                                                                               "@idRecepcionFichero" +
                                                                    " ) ";

                                        //Parametros
                                        object[] arr_Parametros_Insert = new object[]
                                        {
                                            new SqlParameter("@opcion", mdl_INTERNO_Tabla_Modelo.Objeto_2),
                                            new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_3),
                                            new SqlParameter("@idEmpresa", lng_idEmpresa),
                                            new SqlParameter("@idDelegacion", lng_idDelegacion),
                                            lng_idTesoreria > -1
                                                ?   new SqlParameter("@idTesoreria", lng_idTesoreria )
                                                :   new SqlParameter("@idTesoreria",  DBNull.Value),
                                            lng_idPredefinidoCabecera_Remesa > -1
                                                ?   new SqlParameter("@idPredefinidoCabecera_Remesa", lng_idPredefinidoCabecera_Remesa )
                                                :   new SqlParameter("@idPredefinidoCabecera_Remesa",  DBNull.Value),
                                            lng_idPredefinidoCabecera_Negociacion > -1
                                                ?   new SqlParameter("@idPredefinidoCabecera_Negociacion", lng_idPredefinidoCabecera_Negociacion )
                                                :   new SqlParameter("@idPredefinidoCabecera_Negociacion",  DBNull.Value),
                                            lng_idPredefinidoCabecera_CobroManual > -1
                                                ?   new SqlParameter("@idPredefinidoCabecera_CobroManual", lng_idPredefinidoCabecera_CobroManual )
                                                :   new SqlParameter("@idPredefinidoCabecera_CobroManual",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_10 != null
                                                ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_10 )
                                                :   new SqlParameter("@observaciones",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_11 != null
                                                ?   new SqlParameter("@recurrente", mdl_INTERNO_Tabla_Modelo.Objeto_11 )
                                                :   new SqlParameter("@recurrente",  DBNull.Value),
                                            new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_12),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_13 != null
                                                ?   new SqlParameter("@negociar", mdl_INTERNO_Tabla_Modelo.Objeto_13 )
                                                :   new SqlParameter("@negociar",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_14 != null
                                                ?   new SqlParameter("@fechaVencimientosCobros", mdl_INTERNO_Tabla_Modelo.Objeto_14 )
                                                :   new SqlParameter("@fechaVencimientosCobros",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_15 != null
                                                ?   new SqlParameter("@envio_Bloqueado", mdl_INTERNO_Tabla_Modelo.Objeto_15 )
                                                :   new SqlParameter("@envio_Bloqueado",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                ?   new SqlParameter("@cobro_Bloqueado", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                :   new SqlParameter("@cobro_Bloqueado",  DBNull.Value),
                                            new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_17),
                                            new SqlParameter("@tipoCaptura", mdl_INTERNO_Tabla_Modelo.Objeto_18),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_19 != null
                                                ?   new SqlParameter("@tipoCaptura_Fecha_Inicio", mdl_INTERNO_Tabla_Modelo.Objeto_19 )
                                                :   new SqlParameter("@tipoCaptura_Fecha_Inicio",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                ?   new SqlParameter("@tipoCaptura_Fecha_Final", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                :   new SqlParameter("@tipoCaptura_Fecha_Final",  DBNull.Value),
                                            new SqlParameter("@tipoCaptura_Negativos", mdl_INTERNO_Tabla_Modelo.Objeto_21),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_22 != null
                                                ?   new SqlParameter("@fechaEnvioFichero", mdl_INTERNO_Tabla_Modelo.Objeto_22 )
                                                :   new SqlParameter("@fechaEnvioFichero",  DBNull.Value),
                                            new SqlParameter("@norma_Tipo", mdl_INTERNO_Tabla_Modelo.Objeto_23),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_24 != null
                                                ?   new SqlParameter("@norma_Formato", mdl_INTERNO_Tabla_Modelo.Objeto_24 )
                                                :   new SqlParameter("@norma_Formato",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_25 != null
                                                ?   new SqlParameter("@norma_TipoFecha", mdl_INTERNO_Tabla_Modelo.Objeto_25 )
                                                :   new SqlParameter("@norma_TipoFecha",  DBNull.Value),
                                            new SqlParameter("@resumen_Acumular", mdl_INTERNO_Tabla_Modelo.Objeto_26),
                                            new SqlParameter("@resumen_AcumularNegativos", mdl_INTERNO_Tabla_Modelo.Objeto_27),
                                            new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_28),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_29 != null
                                                ?   new SqlParameter("@respuestaBancoRecibida", mdl_INTERNO_Tabla_Modelo.Objeto_29 )
                                                :   new SqlParameter("@respuestaBancoRecibida",  DBNull.Value),
                                            mdl_INTERNO_Tabla_Modelo.Objeto_30 != null
                                                ?   new SqlParameter("@idRecepcionFichero", mdl_INTERNO_Tabla_Modelo.Objeto_30 )
                                                :   new SqlParameter("@idRecepcionFichero",  DBNull.Value)
                                        };

                                        //Llamamos a la funcion de insertar
                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_CODIGO,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                                        mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                        //Todo Correcto
                                        else
                                        {
                                            lng_idRemesaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                            //Añadir al Diccionario
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                      lng_idDelegacion.ToString().Trim() + "_" +
                                                      lng_idEmpresa.ToString().Trim();

                                            g_dct_ids_VTA_RemesasCabecera.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                        }
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDDELEGACION),
                                                                  nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA,
                                                                                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                                                                  Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASCABECERA_CAMPO_IDEMPRESA),
                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #endregion

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_LINEA) && lng_idRemesaCabecera > -1)
                        {
                            string[] arr_string = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim().Split(',');

                            if (arr_string.Count() == 3)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo
                                lng_idEmpresa_numeroFactura = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                            arr_string[0].Trim().Length > 0 ? arr_string[0].Trim() : "",
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);
                                //si existe continuo
                                if (lng_idEmpresa_numeroFactura > -1)
                                {
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (arr_string[1].Trim().Length > 0 ? arr_string[1].Trim() : "") + "_" +
                                              lng_idEmpresa_numeroFactura.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                    {
                                        lng_idDelegacion_numeroFactura = g_dct_ids_GEN_Delegaciones[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idDelegacion_numeroFactura = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                       arr_string[1].Trim().Length > 0 ? arr_string[1].Trim() : "",
                                                                       Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                       lng_idEmpresa_numeroFactura.ToString().Trim(),
                                                                       Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idDelegacion_numeroFactura > -1)
                                        {
                                            g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_numeroFactura);
                                        }

                                    }

                                   
                                    //si existe continuo
                                    if (lng_idDelegacion_numeroFactura > -1)
                                    {
                                        string str_numeroFactura = lng_idEmpresa_numeroFactura.ToString().Trim() + lng_idDelegacion_numeroFactura.ToString().Trim() + arr_string[2].Trim();

                                        lng_numeroFactura = long.Parse(str_numeroFactura);

                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = lng_numeroFactura.ToString().Trim() + "_" +
                                                  lng_idDelegacion_numeroFactura.ToString().Trim() + "_" +
                                                  lng_idEmpresa_numeroFactura.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                        {
                                            lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                        lng_numeroFactura.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                        lng_idDelegacion_numeroFactura.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                        lng_idEmpresa_numeroFactura.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idFacturaCabecera > -1)
                                            {
                                                g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                            }

                                        }

                                        
                                        //si existe continuo
                                        if (lng_idFacturaCabecera > -1)
                                        {
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = (arr_string[3].Trim().Length > 0 ? arr_string[3].Trim() : "") + "_" +
                                                      lng_idFacturaCabecera.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_VTA_Vencimientos.ContainsKey(str_AUX))
                                            {
                                                lng_idVencimiento = g_dct_ids_VTA_Vencimientos[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idVencimiento = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_ID,
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_CODIGO,
                                                                                                             arr_string[3].Trim().Length > 0 ? arr_string[3].Trim() : "",
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_VENCIMIENTOS_CAMPO_IDFACTURACABECERA,
                                                                                                             lng_idFacturaCabecera.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idVencimiento > -1)
                                                {
                                                    g_dct_ids_VTA_Vencimientos.Add(str_AUX, lng_idVencimiento);
                                                }

                                            }

                                            
                                            //si existe continuo
                                            if (lng_idVencimiento > -1)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = lng_idVencimiento.ToString().Trim() + "_" +
                                                          mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() + "_" +
                                                          mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_VTA_RemesasLineas.ContainsKey(str_AUX))
                                                {
                                                    lng_idRemesaLineas = g_dct_ids_VTA_RemesasLineas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idRemesaLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO,
                                                                                                                 lng_idVencimiento.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IMPORTE,
                                                                                                                 mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_POSICION,
                                                                                                                 mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idRemesaLineas > -1)
                                                    {
                                                        g_dct_ids_VTA_RemesasLineas.Add(str_AUX, lng_idRemesaLineas);
                                                    }

                                                }

                                               

                                                //Si no existe inserto el registro
                                                if (lng_idRemesaLineas == -1)
                                                {

                                                    //Si contiene algo busco el idCuentaBancaria/RemessaAcumulado
                                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_33 != null)
                                                    {
                                                        if (lng_idFacturaCabecera > -1)
                                                        {

                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = lng_idFacturaCabecera.ToString().Trim();
                                                            //......................................................................................

                                                            if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                                            {
                                                                lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLIENTE,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                        lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idCliente > -1)
                                                                {
                                                                    g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                                                }

                                                            }



                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = lng_idFacturaCabecera.ToString().Trim();
                                                            //......................................................................................


                                                            string[] arr_string_CuentasBancarias = mdl_INTERNO_Tabla_Modelo.Objeto_33.ToString().Trim().Split(',');

                                                            if (arr_string_CuentasBancarias.Count() == 2)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = arr_string_CuentasBancarias[0].Trim().Length > 0 ? arr_string_CuentasBancarias[0].Trim() : "";
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmpresa_idCuentaBancariaSEPA_Cobro = g_dct_ids_GEN_Empresas[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmpresa_idCuentaBancariaSEPA_Cobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                                                            arr_string_CuentasBancarias[0].Trim().Length > 0 ? arr_string_CuentasBancarias[0].Trim() : "",
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmpresa_idCuentaBancariaSEPA_Cobro > -1)
                                                                    {
                                                                        g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_idCuentaBancariaSEPA_Cobro);
                                                                    }

                                                                }

                                                                
                                                                //si existe continuo
                                                                if (lng_idEmpresa_idCuentaBancariaSEPA_Cobro > -1)
                                                                {
                                                                    if (lng_idCliente > -1)
                                                                    {
                                                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                        str_AUX = (arr_string_CuentasBancarias[2].Trim().Length > 0 ? arr_string_CuentasBancarias[2].Trim() : "") + "_" +
                                                                                  lng_idEmpresa_idCuentaBancariaSEPA_Cobro.ToString().Trim() + "_" +
                                                                                  lng_idCliente.ToString().Trim();
                                                                        //......................................................................................

                                                                        if (g_dct_ids_MAE_CuentasbancariasSEPACobros.ContainsKey(str_AUX))
                                                                        {
                                                                            lng_idCuentaBancariaSEPA_Cobro = g_dct_ids_MAE_CuentasbancariasSEPACobros[str_AUX];
                                                                        }
                                                                        else
                                                                        {
                                                                            lng_idCuentaBancariaSEPA_Cobro = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS,
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_ID,
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_REFERENCIA,
                                                                                                                                                   arr_string_CuentasBancarias[2].Trim().Length > 0 ? arr_string_CuentasBancarias[2].Trim() : "",
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDEMPRESA,
                                                                                                                                                   lng_idEmpresa_idCuentaBancariaSEPA_Cobro.ToString().Trim(),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_MAE_CUENTASBANCARIASSEPA_COBROS_CAMPO_IDCLIENTE,
                                                                                                                                                   lng_idCliente.ToString().Trim(),
                                                                                                                                                   Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                            //Añadir al Diccionario
                                                                            if (lng_idCuentaBancariaSEPA_Cobro > -1)
                                                                            {
                                                                                g_dct_ids_MAE_CuentasbancariasSEPACobros.Add(str_AUX, lng_idCuentaBancariaSEPA_Cobro);
                                                                            }

                                                                        }
                                                                    }
                                                                    
                                                                    //Si contiene algo busco el RemessaAcumulado
                                                                    if (lng_idCuentaBancariaSEPA_Cobro > -1 && mdl_INTERNO_Tabla_Modelo.Objeto_31 != null)
                                                                    {
                                                                        string[] arr_string_RemesaAcumulado = mdl_INTERNO_Tabla_Modelo.Objeto_31.ToString().Trim().Split(',');

                                                                        if (arr_string_RemesaAcumulado.Count() == 2)
                                                                        {
                                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                            str_AUX = arr_string_RemesaAcumulado[0].Trim().Length > 0 ? arr_string_RemesaAcumulado[0].Trim() : "";
                                                                            //......................................................................................

                                                                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                                                            {
                                                                                lng_idEmpresa_idRemesaAcumulado = g_dct_ids_GEN_Empresas[str_AUX];
                                                                            }
                                                                            else
                                                                            {
                                                                                lng_idEmpresa_idRemesaAcumulado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                                                                        arr_string_RemesaAcumulado[0].Trim().Length > 0 ? arr_string_RemesaAcumulado[0].Trim() : "",
                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                                //Añadir al Diccionario
                                                                                if (lng_idEmpresa_idRemesaAcumulado > -1)
                                                                                {
                                                                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa_idRemesaAcumulado);
                                                                                }

                                                                            }

                                                                            
                                                                            //si existe continuo
                                                                            if (lng_idEmpresa_idRemesaAcumulado > -1)
                                                                            {
                                                                                if (lng_idCliente > -1)
                                                                                {
                                                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                                    str_AUX = lng_idCliente.ToString().Trim() + "_" +
                                                                                              lng_idEmpresa_idRemesaAcumulado.ToString().Trim();
                                                                                    //......................................................................................

                                                                                    if (g_dct_ids_VTA_RemesasAcumulados.ContainsKey(str_AUX))
                                                                                    {
                                                                                        lng_idRemesaAcumulado = g_dct_ids_VTA_RemesasAcumulados[str_AUX];
                                                                                    }
                                                                                    else
                                                                                    {
                                                                                        lng_idRemesaAcumulado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_ID,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDCLIENTE,
                                                                                                                                                lng_idCliente.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASACUMULADOS_CAMPO_IDEMPRESA,
                                                                                                                                                lng_idEmpresa_idRemesaAcumulado.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                                        //Añadir al Diccionario
                                                                                        if (lng_idRemesaAcumulado > -1)
                                                                                        {
                                                                                            g_dct_ids_VTA_RemesasAcumulados.Add(str_AUX, lng_idRemesaAcumulado);
                                                                                        }

                                                                                    }

                                                                                    
                                                                                }
                                                                            }
                                                                            else
                                                                            {
                                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                                arr_string_CuentasBancarias[0].Trim().Length > 0 ? arr_string_CuentasBancarias[0].Trim() : "",
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA),
                                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                                            }
                                                                        }
                                                                        else
                                                                        {
                                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim(),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA),
                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                                        }
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                    arr_string_CuentasBancarias[0].Trim().Length > 0 ? arr_string_CuentasBancarias[0].Trim() : "",
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA),
                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }
                                                            else
                                                            {
                                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_19 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_19.ToString().Trim() : "",
                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA),
                                                                                                     nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                            }
                                                        }
                                                        else
                                                        {

                                                        }
                                                    }

                                                    

                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA +
                                                                                " (" +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDREMESACABECERA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDREMESAACUMULADO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDCUENTABANCARIASEPA_COBRO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IMPORTE + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_CONCEPTO + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_POSICION + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_BLOQUEADO +
                                                                                " ) " +
                                                                                " OUTPUT INSERTED.id " +
                                                                                " VALUES " +
                                                                                " ( " +
                                                                                              "@idRemesaCabecera," +
                                                                                              "@idRemesaAcumulado," +
                                                                                              "@idVencimiento," +
                                                                                              "@idCuentaBancariaSEPA_Cobro," +
                                                                                              "@importe," +
                                                                                              "@concepto," +
                                                                                              "@posicion," +
                                                                                              "@bloqueado" +
                                                                                 " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                                    new SqlParameter("@idRemesaCabecera", lng_idRemesaCabecera),
                                                                    lng_idRemesaAcumulado > -1
                                                                        ?   new SqlParameter("@idRemesaAcumulado", lng_idRemesaAcumulado )
                                                                        :   new SqlParameter("@idRemesaAcumulado",  DBNull.Value),
                                                                    new SqlParameter("@idVencimiento", lng_idVencimiento),
                                                                    lng_idCuentaBancariaSEPA_Cobro > -1
                                                                        ?   new SqlParameter("@idCuentaBancariaSEPA_Cobro", lng_idCuentaBancariaSEPA_Cobro )
                                                                        :   new SqlParameter("@idCuentaBancariaSEPA_Cobro",  DBNull.Value),
                                                                    new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_34),
                                                                    new SqlParameter("@concepto", mdl_INTERNO_Tabla_Modelo.Objeto_35),
                                                                    new SqlParameter("@posicion", mdl_INTERNO_Tabla_Modelo.Objeto_36),
                                                                    new SqlParameter("@bloqueado", mdl_INTERNO_Tabla_Modelo.Objeto_37)
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDREMESACABECERA,
                                                                                                                                                    lng_idRemesaCabecera.ToString().Trim(),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    else
                                                    {
                                                        //Añadir al Diccionario
                                                        str_AUX = lng_idVencimiento.ToString().Trim() + "_" +
                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_34.ToString().Trim() + "_" +
                                                                  mdl_INTERNO_Tabla_Modelo.Objeto_36.ToString().Trim();

                                                        g_dct_ids_VTA_RemesasLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_32.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                            arr_string[1].Trim().Length > 0 ? arr_string[1].Trim() : "",
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                            arr_string[1].Trim().Length > 0 ? arr_string[1].Trim() : "",
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                        arr_string[0].Trim().Length > 0 ? arr_string[0].Trim() : "",
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDVENCIMIENTO),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA,
                                                                                                                            lng_idRemesaCabecera.ToString().Trim(),
                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_REMESASLINEA_CAMPO_IDREMESACABECERA),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }

                        }
                        //###################################################################################################
                        #endregion

                        int_Contador_Linea_Excel += 1;

                    }
                }
            }
            catch (NullReferenceException ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores(Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO(), ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta), true);
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_RemesasVenta), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
        #region VTA_AlbaranesFacturas
        public INTERNO_ValorDevuelto_Modelo Insertar_AlbaranesFacturas(List<INTERNO_Tabla_Modelo> _lst_INTERNO_Tabla_Modelo, object sender, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal, INTERNO_Identificador_Descripcion_Modelo _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla)
        {
            INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_ValorDevuelto_Modelo.TodoCorrecto = true;

            //Linea //Se va a usar por si diera algun fallo por campo nulo
            bool bol_Albaran = false;

            string str_Fila = "";
            string str_Identificador = "";
            long lng_idFacturaCabecera = -1;
            long lng_idFacturaCabecera_PorAlbaran = -1;
            long lng_idAlbaranCabecera = -1;
            long lng_idDelegacion = -1;
            long lng_idFormaPago = -1;
            long lng_idEmpresa = -1;
            long lng_idCliente = -1;
            long lng_idSocio = -1;
            long lng_idPredefinidoCabecera = -1;
            long lng_idPredefinidoCabeceraAlbaran = -1;
            long lng_idPredefinidoCabeceraServcio = -1;
            long lng_idLiquidacionTributaria = -1;
            long lng_idMoneda = -1;
            long lng_idImpuestoCabecera = -1;
            long lng_idEmpleado = -1;
            long lng_idVendedor_Preventa = -1;
            long lng_idVendedor_Preventa_Habitual = -1;
            long lng_idVendedor_Repartidor = -1;
            long lng_idVendedor_Cobrador = -1;
            long lng_idVendedor_CobradorHabitual = -1;
            long lng_idVendedor_Autoventa = -1;
            long lng_idClaveAnalitica = -1;
            long lng_idFacturaCabeceraAnexo = -1;
            long lng_idFacturaCabecerDatosViaje = -1;
            long lng_idRelacionClienteProveedor = -1;
            long lng_idAlbaranCabeceraAnexo = -1;
            long lng_idAlbaraneCabecerDatosViaje = -1;

            long lng_idTipoCompraVenta = -1;
            long lng_idAlmacen = -1;
            long lng_idEmbalaje = -1;
            long lng_idEmbalaje_EmbalajePrincipal = -1;
            long lng_idNomenclaturaPrecio = -1;
            long lng_idAlbaranesFacturasLineas = -1;
            long lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas = -1;
            long lng_idPedidosCabecera = -1;
            long lng_idDelegacion_PedidoLinea = -1;
            long lng_idPedidoLinea = -1;
            long lng_idArticulo = -1;
            long lng_idArticuloComodin = -1;
            long lng_idUbicacion = -1;
            long lng_idEmbalaje_SegundaUnidad = -1;
            long lng_idImpuestoTipo = -1;
            long lng_idAlbaranFacturaLinea_Padre = -1;
            long lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
            long lng_idRetencionTipo = -1;

            long lng_idAlbaranesFacturasLineas_Comentario = -1;

            long lng_idArticulo_Trazabilidad = -1;
            long lng_idAlbaranesFacturasLinea_Trazabilidad = -1;

            long lng_idAlbaranFacturaLinea_TarifasPromociones = -1;
            long lng_AB_idArticulo = -1;
            long lng_AB_idEmbalaje = -1;
            long lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes = -1;

            string str_AUX = "";

            //Ruta carpeta Final
            string str_Ruta_CarpetaLOG_Final = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + Variables_TraspasoDatos.G_STR_CARPETA_LOG_Y_FECHA + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Auxiliar;
            string str_Ruta_FichaeroLOG_Final = str_Ruta_CarpetaLOG_Final + @"\" + _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Auxiliar;


            List<long> lst_idFacturasCabecera_Insertados = new List<long>();
            List<long> lst_idAlbaranesCabecera_Insertados = new List<long>();

            try
            {
                if (_lst_INTERNO_Tabla_Modelo != null &&
                   _lst_INTERNO_Tabla_Modelo.Count > 0)
                {

                    //Crear el Directorio si no existiera ................
                    if (!Directory.Exists(str_Ruta_CarpetaLOG_Final))
                    {
                        Directory.CreateDirectory(str_Ruta_CarpetaLOG_Final);
                    }
                    //....................................................


                    int int_Contador_Linea_Excel = 2;
                    foreach (INTERNO_Tabla_Modelo mdl_INTERNO_Tabla_Modelo in _lst_INTERNO_Tabla_Modelo)
                    {

                        //####Actualizo la barra de progreso secundaria ##
                        //Para incrementar en la barra de progreso secundaria
                        ((BackgroundWorker)sender).ReportProgress(3, "");
                        //################################################

                        #region Inicializar Variables
                        str_Fila = "";
                        str_Identificador = "";
                        lng_idFacturaCabecera = -1;
                        lng_idFacturaCabecera_PorAlbaran = -1;
                        lng_idAlbaranCabecera = -1;
                        lng_idDelegacion = -1;
                        lng_idFormaPago = -1;
                        lng_idEmpresa = -1;
                        lng_idCliente = -1;
                        lng_idSocio = -1;
                        lng_idPredefinidoCabecera = -1;
                        lng_idPredefinidoCabeceraAlbaran = -1;
                        lng_idPredefinidoCabeceraServcio = -1;
                        lng_idLiquidacionTributaria = -1;
                        lng_idMoneda = -1;
                        lng_idImpuestoCabecera = -1;
                        lng_idEmpleado = -1;
                        lng_idVendedor_Preventa = -1;
                        lng_idVendedor_Preventa_Habitual = -1;
                        lng_idVendedor_Repartidor = -1;
                        lng_idVendedor_Cobrador = -1;
                        lng_idVendedor_CobradorHabitual = -1;
                        lng_idVendedor_Autoventa = -1;
                        lng_idClaveAnalitica = -1;
                        lng_idFacturaCabeceraAnexo = -1;
                        lng_idFacturaCabecerDatosViaje = -1;
                        lng_idRelacionClienteProveedor = -1;
                        lng_idAlbaranCabeceraAnexo = -1;
                        lng_idAlbaraneCabecerDatosViaje = -1;

                        lng_idTipoCompraVenta = -1;
                        lng_idAlmacen = -1;
                        lng_idEmbalaje = -1;
                        lng_idEmbalaje_EmbalajePrincipal = -1;
                        lng_idNomenclaturaPrecio = -1;
                        lng_idAlbaranesFacturasLineas = -1;
                        lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas = -1;
                        lng_idPedidosCabecera = -1;
                        lng_idDelegacion_PedidoLinea = -1;
                        lng_idPedidoLinea = -1;
                        lng_idArticulo = -1;
                        lng_idArticuloComodin = -1;
                        lng_idUbicacion = -1;
                        lng_idEmbalaje_SegundaUnidad = -1;
                        lng_idImpuestoTipo = -1;
                        lng_idAlbaranFacturaLinea_Padre = -1;
                        lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = -1;
                        lng_idRetencionTipo = -1;

                        lng_idAlbaranesFacturasLineas_Comentario = -1;

                        lng_idArticulo_Trazabilidad = -1;
                        lng_idAlbaranesFacturasLinea_Trazabilidad = -1;

                        lng_idAlbaranFacturaLinea_TarifasPromociones = -1;
                        lng_AB_idArticulo = -1;
                        lng_AB_idEmbalaje = -1;

                        lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes = -1;
                        str_AUX = "";
                        #endregion

                        //Esto se usa por si diera algun nulo para identificar en que fila del excel fue
                        str_Fila = mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString();

                        //Obtengo el identificador
                        str_Identificador = mdl_INTERNO_Tabla_Modelo.Objeto_1.ToString();

                        #region Cabecera Facturas
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_VENTAS_CABECERAFACTURAS))
                        {
                            bol_Albaran = false;

                            #region idEmpresa
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }
                            #endregion

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                #region idDelegacion
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();

                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    #region idFormaPago
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();

                                    if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                                    {
                                        lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                            lng_idEmpresa.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idFormaPago > -1)
                                        {
                                            g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idFormaPago > -1)
                                    {
                                        #region idFacturaCabecera
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                  lng_idDelegacion.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                  mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();

                                        if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                        {
                                            lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                lng_idDelegacion.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idFacturaCabecera > -1)
                                            {
                                                g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                            }

                                        }
                                        #endregion

                                        //Si no existe inserto el registro
                                        if (lng_idFacturaCabecera == -1)
                                        {
                                            #region idCliente
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                                {
                                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                               lng_idEmpresa.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idCliente > -1)
                                                    {
                                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                                    }

                                                }



                                                //Si no existe muestro error
                                                if (lng_idCliente == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLIENTE),
                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idPredefinidoCabecera
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabecera = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabecera > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabecera);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idPredefinidoCabecera == -1)
                                                {

                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idMoneda
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                                {
                                                    lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMoneda > -1)
                                                    {
                                                        g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idMoneda == -1)
                                                {

                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDMONEDA),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idImpuestoCabecera
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                                {
                                                    lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idImpuestoCabecera > -1)
                                                    {
                                                        g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idImpuestoCabecera == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                              mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idEmpleado 
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmpleado > -1)
                                                    {
                                                        g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                    }

                                                }



                                                //Si no existe muestro error
                                                if (lng_idEmpleado == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                         Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPLEADO),
                                                                         nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                         "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Preventa
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Preventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Preventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Preventa > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Preventa == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_PREVENTA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Preventa_Habitual
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Preventa_Habitual = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Preventa_Habitual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Preventa_Habitual > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa_Habitual);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Preventa_Habitual == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Repartidor
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Repartidor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Repartidor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Repartidor > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Repartidor);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Repartidor == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Cobrador
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Cobrador = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Cobrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Cobrador > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Cobrador);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Cobrador == -1)
                                                {

                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_COBRADOR),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_CobradorHabitual
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_CobradorHabitual = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_CobradorHabitual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_CobradorHabitual > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_CobradorHabitual);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_CobradorHabitual == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_COBRADORHABITUAL),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Autoventa
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Autoventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Autoventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Autoventa > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Autoventa);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Autoventa == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_AUTOVENTA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idClaveAnalitica
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                {
                                                    lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idClaveAnalitica > -1)
                                                    {
                                                        g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idClaveAnalitica == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLAVEANALITICA),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                        "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLIENTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDSOCIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDFORMAPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHAINTRODUCCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDPREDEFINIDOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDLIQUIDACIONTRIBUTARIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_CLAVEEMISORA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_GUID + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDMONEDA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_DESCUENTOPRONTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_PREVENTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_COBRADOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_COBRADORHABITUAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDVENDEDOR_AUTOVENTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_REFERENCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_SITUACIONPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_APLICARRETENCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NODECLARARMODELOSOFICIALES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_CRITERIOCAJA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_RETENCION_PORCENTAJE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_RETENCION_BASE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_RETENCION_VALOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOPROMTOPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_RETENCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_FINAL + 
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                        "@numeroFactura," +
                                                                                        "@idCliente," +
                                                                                        "@idSocio," +
                                                                                        "@idDelegacion," +
                                                                                        "@idFormaPago," +
                                                                                        "@fecha," +
                                                                                        "@fechaIntroduccion," +
                                                                                        "@idEmpresa," +
                                                                                        "@estado," +
                                                                                        "@idPredefinidoCabecera," +
                                                                                        "@idLiquidacionTributaria," +
                                                                                        "@claveEmisora," +
                                                                                        "@descripcion," +
                                                                                        "@guid," +
                                                                                        "@idMoneda," +
                                                                                        "@idImpuestoCabecera," +
                                                                                        "@descuentoProntoPago," +
                                                                                        "@descuentoFinalFactura," +
                                                                                        "@idEmpleado," +
                                                                                        "@idVendedor_Preventa," +
                                                                                        "@idVendedor_PreventaHabitual," +
                                                                                        "@idVendedor_Repartidor," +
                                                                                        "@idVendedor_Cobrador," +
                                                                                        "@idVendedor_CobradorHabitual," +
                                                                                        "@idVendedor_Autoventa," +
                                                                                        "@referencia," +
                                                                                        "@idClaveAnalitica," +
                                                                                        "@recargo," +
                                                                                        "@situacionPago," +
                                                                                        "@observaciones," +
                                                                                        "@aplicarRetencion," +
                                                                                        "@noDeclararModelosOficiales," +
                                                                                        "@criterioCaja," +
                                                                                        "@retencion_Porcentaje," +
                                                                                        "@retencion_Valor," +
                                                                                        "@retencion_Base," +
                                                                                        "@total," +
                                                                                        "@total_bruto," +
                                                                                        "@total_descuentoProntoPago," +
                                                                                        "@total_descuentoFinalFactura," +
                                                                                        "@total_baseImponible," +
                                                                                        "@total_impuesto," +
                                                                                        "@total_recargo," +
                                                                                        "@total_retencion," +
                                                                                        "@total_Final" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@numeroFactura", mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim()),
                                                lng_idCliente > -1
                                                    ?   new SqlParameter("@idCliente", lng_idCliente )
                                                    :   new SqlParameter("@idCliente",  DBNull.Value),
                                                lng_idSocio > -1
                                                    ?   new SqlParameter("@idSocio", lng_idSocio )
                                                    :   new SqlParameter("@idSocio",  DBNull.Value),
                                                new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                new SqlParameter("@idFormaPago", lng_idFormaPago),
                                                new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_9),
                                                new SqlParameter("@fechaIntroduccion", mdl_INTERNO_Tabla_Modelo.Objeto_11),
                                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                lng_idPredefinidoCabecera > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera", lng_idPredefinidoCabecera )
                                                    :   new SqlParameter("@idPredefinidoCabecera",  DBNull.Value),
                                                 lng_idLiquidacionTributaria > -1
                                                    ?   new SqlParameter("@idLiquidacionTributaria", lng_idLiquidacionTributaria )
                                                    :   new SqlParameter("@idLiquidacionTributaria",  DBNull.Value),
                                                new SqlParameter("@claveEmisora",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                    ?   new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                    :   new SqlParameter("@descripcion",  DBNull.Value),
                                                new SqlParameter("@guid",  DBNull.Value),
                                                lng_idMoneda > -1
                                                    ?   new SqlParameter("@idMoneda", lng_idMoneda )
                                                    :   new SqlParameter("@idMoneda",  DBNull.Value),
                                                lng_idImpuestoCabecera > -1
                                                    ?   new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera )
                                                    :   new SqlParameter("@idImpuestoCabecera",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_20 != null
                                                    ?   new SqlParameter("@descuentoProntoPago", mdl_INTERNO_Tabla_Modelo.Objeto_20 )
                                                    :   new SqlParameter("@descuentoProntoPago",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                    ?   new SqlParameter("@descuentoFinalFactura", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                    :   new SqlParameter("@descuentoFinalFactura",  DBNull.Value),
                                                lng_idEmpleado > -1
                                                    ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                    :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                lng_idVendedor_Preventa > -1
                                                    ?   new SqlParameter("@idVendedor_Preventa", lng_idVendedor_Preventa )
                                                    :   new SqlParameter("@idVendedor_Preventa",  DBNull.Value),
                                                lng_idVendedor_Preventa_Habitual > -1
                                                    ?   new SqlParameter("@idVendedor_PreventaHabitual", lng_idVendedor_Preventa_Habitual )
                                                    :   new SqlParameter("@idVendedor_PreventaHabitual",  DBNull.Value),
                                                lng_idVendedor_Repartidor > -1
                                                    ?   new SqlParameter("@idVendedor_Repartidor", lng_idVendedor_Repartidor )
                                                    :   new SqlParameter("@idVendedor_Repartidor",  DBNull.Value),
                                                lng_idVendedor_Cobrador > -1
                                                    ?   new SqlParameter("@idVendedor_Cobrador", lng_idVendedor_Cobrador )
                                                    :   new SqlParameter("@idVendedor_Cobrador",  DBNull.Value),
                                                lng_idVendedor_CobradorHabitual > -1
                                                    ?   new SqlParameter("@idVendedor_CobradorHabitual", lng_idVendedor_CobradorHabitual )
                                                    :   new SqlParameter("@idVendedor_CobradorHabitual",  DBNull.Value),
                                                lng_idVendedor_Autoventa > -1
                                                    ?   new SqlParameter("@idVendedor_Autoventa", lng_idVendedor_Autoventa )
                                                    :   new SqlParameter("@idVendedor_Autoventa",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                    ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                    :   new SqlParameter("@referencia",  DBNull.Value),
                                                lng_idClaveAnalitica > -1
                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                    ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                    :   new SqlParameter("@recargo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                    ?   new SqlParameter("@situacionPago", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                    :   new SqlParameter("@situacionPago",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_36 != null
                                                    ?   new SqlParameter("@aplicarRetencion", mdl_INTERNO_Tabla_Modelo.Objeto_36 )
                                                    :   new SqlParameter("@aplicarRetencion",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_35 != null
                                                    ?   new SqlParameter("@noDeclararModelosOficiales", mdl_INTERNO_Tabla_Modelo.Objeto_35 )
                                                    :   new SqlParameter("@noDeclararModelosOficiales",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_34 != null
                                                    ?   new SqlParameter("@criterioCaja", mdl_INTERNO_Tabla_Modelo.Objeto_34 )
                                                    :   new SqlParameter("@criterioCaja",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_37 != null
                                                    ?   new SqlParameter("@retencion_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_37 )
                                                    :   new SqlParameter("@retencion_Porcentaje",  DBNull.Value),
                                                new SqlParameter("@retencion_Valor", "0.00" ),
                                                new SqlParameter("@retencion_Base", "0.00"  ),
                                                new SqlParameter("@total", "0.00" ),
                                                new SqlParameter("@total_bruto", "0.00" ),
                                                new SqlParameter("@total_descuentoProntoPago", "0.00" ),
                                                new SqlParameter("@total_descuentoFinalFactura", "0.00" ),
                                                new SqlParameter("@total_baseImponible", "0.00" ),
                                                new SqlParameter("@total_impuesto", "0.00" ),
                                                new SqlParameter("@total_recargo", "0.00" ),
                                                new SqlParameter("@total_retencion","0.00" ),
                                                new SqlParameter("@total_Final","0.00" )
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idFacturaCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                lst_idFacturasCabecera_Insertados.Add(lng_idFacturaCabecera);

                                                //Añadir al Diccionario
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                           lng_idDelegacion.ToString().Trim() + "_" +
                                                           lng_idEmpresa.ToString().Trim() + "_" +
                                                          mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();

                                                g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {

                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDFORMAPAGO),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idFacturaCabecera > -1)
                        {
                            //Si numeroPedidoCliente esta vacio no relleno anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null)
                            {
                                #region idFacturaCabeceraAnexo
                                str_AUX = lng_idFacturaCabecera.ToString().Trim();

                                if (g_dct_ids_VTA_FacturasCabecerasAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idFacturaCabeceraAnexo = g_dct_ids_VTA_FacturasCabecerasAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idFacturaCabeceraAnexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS_CAMPO_IDFACTURACABECERA,
                                                                                                                 lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idFacturaCabeceraAnexo > -1)
                                    {
                                        g_dct_ids_VTA_FacturasCabecerasAnexos.Add(str_AUX, lng_idFacturaCabeceraAnexo);
                                    }

                                }
                                #endregion


                                //Si no existe inserto el registro
                                if (lng_idFacturaCabeceraAnexo == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS +
                                                                " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS_CAMPO_IDFACTURACABECERA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_ANEXOS_CAMPO_NUMEROPEDIDOCLIENTE +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                            "@idFacturaCabecera," +
                                                                            "@numeroPedidoCliente" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_39 != null
                                        ?   new SqlParameter("@numeroPedidoCliente", mdl_INTERNO_Tabla_Modelo.Objeto_39 )
                                        :   new SqlParameter("@numeroPedidoCliente",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                                _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idFacturaCabecera.ToString().Trim();

                                        g_dct_ids_VTA_FacturasCabecerasAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                                
                            }
                        }
                        //##################################################################################################
                        #endregion
                        #region DatosViaje
                        //DatosViaje ###########################################################################################
                        if (lng_idFacturaCabecera > -1)
                        {
                            //Si la fechaCarga esta vacia no relleno DatosViaje
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_45 != null)
                            {
                                #region idFacturaCabecerDatosViaje
                                str_AUX = lng_idFacturaCabecera.ToString().Trim();

                                if (g_dct_ids_VTA_FacturasCabecerasDatosViaje.ContainsKey(str_AUX))
                                {
                                    lng_idFacturaCabecerDatosViaje = g_dct_ids_VTA_FacturasCabecerasDatosViaje[str_AUX];
                                }
                                else
                                {
                                    lng_idFacturaCabecerDatosViaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_IDFACTURACABECERA,
                                                                                                                 lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idFacturaCabecerDatosViaje > -1)
                                    {
                                        g_dct_ids_VTA_FacturasCabecerasDatosViaje.Add(str_AUX, lng_idFacturaCabecerDatosViaje);
                                    }

                                }
                                #endregion

                                //Si no existe inserto el registro
                                if (lng_idFacturaCabecerDatosViaje == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE +
                                                                  " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_IDFACTURACABECERA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_FECHACARGA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_MATRICULAVEHICULO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_MATRICULAREMOLQUE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_ORIGEN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_DESTINO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_DATOSVIAJE_CAMPO_REFERENCIA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                               "@idFacturaCabecera," +
                                                                               "@fechaCarga," +
                                                                               "@matriculaVehiculo," +
                                                                               "@matriculaRemolque," +
                                                                               "@origen," +
                                                                               "@destino," +
                                                                               "@referencia" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                            ?   new SqlParameter("@fechaCarga", mdl_INTERNO_Tabla_Modelo.Objeto_45)
                                            :   new SqlParameter("@fechaCarga",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                            ?   new SqlParameter("@matriculaVehiculo", mdl_INTERNO_Tabla_Modelo.Objeto_46 )
                                            :   new SqlParameter("@matriculaVehiculo",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_47 != null
                                            ?   new SqlParameter("@matriculaRemolque", mdl_INTERNO_Tabla_Modelo.Objeto_47 )
                                            :   new SqlParameter("@matriculaRemolque",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                            ?   new SqlParameter("@origen", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                            :   new SqlParameter("@origen",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                            ?   new SqlParameter("@destino", mdl_INTERNO_Tabla_Modelo.Objeto_49 )
                                            :   new SqlParameter("@destino",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                            ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_50 )
                                            :   new SqlParameter("@referencia",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idFacturaCabecera.ToString().Trim();

                                        g_dct_ids_VTA_FacturasCabecerasDatosViaje.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion
                        #endregion

                        #region Cabecera Albaran
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_VENTAS_CABECERAALBARANES))
                        {
                            bol_Albaran = true;

                            #region idEmpresa
                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim();

                            if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                            {
                                lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                            }
                            else
                            {
                                lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                         Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim(),
                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                //Añadir al Diccionario
                                if (lng_idEmpresa > -1)
                                {
                                    g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                }

                            }
                            #endregion

                            //si existe el registro continuo
                            if (lng_idEmpresa > -1)
                            {
                                #region idDelegacion
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim();


                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[str_AUX];
                                }
                                else
                                {
                                    lng_idDelegacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idDelegacion > -1)
                                    {
                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion);
                                    }

                                }
                                #endregion

                                //si existe el registro continuo
                                if (lng_idDelegacion > -1)
                                {
                                    #region idFormaPago
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim();

                                    if (g_dct_ids_MAE_FormasPago.ContainsKey(str_AUX))
                                    {
                                        lng_idFormaPago = g_dct_ids_MAE_FormasPago[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idFormaPago = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_ID,
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_CODIGO,
                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_FORMASPAGO_CAMPO_IDEMPRESA,
                                                                            lng_idEmpresa.ToString().Trim(),
                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idFormaPago > -1)
                                        {
                                            g_dct_ids_MAE_FormasPago.Add(str_AUX, lng_idFormaPago);
                                        }

                                    }
                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idFormaPago > -1)
                                    {
                                        #region idAlbaranCabecera
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                  lng_idDelegacion.ToString().Trim() + "_" +
                                                  lng_idEmpresa.ToString().Trim() + "_" +
                                                  mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();

                                        if (g_dct_ids_VTA_AlbaranesCabeceras.ContainsKey(str_AUX))
                                        {
                                            lng_idAlbaranCabecera = g_dct_ids_VTA_AlbaranesCabeceras[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlbaranCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION,
                                                                                                                lng_idDelegacion.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlbaranCabecera > -1)
                                            {
                                                g_dct_ids_VTA_AlbaranesCabeceras.Add(str_AUX, lng_idAlbaranCabecera);
                                            }

                                        }
                                        #endregion

                                        //Si no existe inserto el registro
                                        if (lng_idAlbaranCabecera == -1)
                                        {
                                            #region idCliente 
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_8 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Clientes.ContainsKey(str_AUX))
                                                {
                                                    lng_idCliente = g_dct_ids_MAE_Clientes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idCliente = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_ID,
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_CODIGO,
                                                                                                               mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_MAE_CLIENTES_CAMPO_IDEMPRESA,
                                                                                                               lng_idEmpresa.ToString().Trim(),
                                                                                                               Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idCliente > -1)
                                                    {
                                                        g_dct_ids_MAE_Clientes.Add(str_AUX, lng_idCliente);
                                                    }

                                                }



                                                //Si no existe muestro error
                                                if (lng_idCliente == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_8.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDCLIENTE),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            #endregion

                                            #region idPredefinidoCabeceraAlbaran
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_28 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabeceraAlbaran = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabeceraAlbaran = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabeceraAlbaran > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabeceraAlbaran);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idPredefinidoCabeceraAlbaran == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_28.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ALBARAN),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idPredefinidoCabeceraServcio
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_29 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_PredefinidosCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idPredefinidoCabeceraServcio = g_dct_ids_CTA_PredefinidosCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idPredefinidoCabeceraServcio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_CTA_PREDEFINIDOSCABECERAS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idPredefinidoCabeceraServcio > -1)
                                                    {
                                                        g_dct_ids_CTA_PredefinidosCabeceras.Add(str_AUX, lng_idPredefinidoCabeceraServcio);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idPredefinidoCabeceraServcio == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_29.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDPREDEFINIDOCABECERA_SERVICIOS),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idMoneda
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_14 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_Monedas.ContainsKey(str_AUX))
                                                {
                                                    lng_idMoneda = g_dct_ids_GEN_Monedas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idMoneda = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_ID,
                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_GEN_MONEDAS_CAMPO_MONEDA,
                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idMoneda > -1)
                                                    {
                                                        g_dct_ids_GEN_Monedas.Add(str_AUX, lng_idMoneda);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idMoneda == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_14.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDMONEDA),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);


                                                    
                                                }
                                            }
                                            #endregion

                                            #region idImpuestoCabecera
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_17 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_GEN_ImpuestosCabecera.ContainsKey(str_AUX))
                                                {
                                                    lng_idImpuestoCabecera = g_dct_ids_GEN_ImpuestosCabecera[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idImpuestoCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idImpuestoCabecera > -1)
                                                    {
                                                        g_dct_ids_GEN_ImpuestosCabecera.Add(str_AUX, lng_idImpuestoCabecera);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idImpuestoCabecera == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_17.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDIMPUESTOCABECERA),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);


                                                    
                                                }
                                            }
                                            #endregion

                                            #region idEmpleado
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_15 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Empleados.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmpleado = g_dct_ids_MAE_Empleados[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmpleado = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMPLEADOS_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmpleado > -1)
                                                    {
                                                        g_dct_ids_MAE_Empleados.Add(str_AUX, lng_idEmpleado);
                                                    }

                                                }



                                                //Si no existe muestro error
                                                if (lng_idEmpleado == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_15.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPLEADO),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Preventa
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_22 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Preventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Preventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Preventa > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Preventa == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_22.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_PREVENTA),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Preventa_Habitual
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_23 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Preventa_Habitual = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Preventa_Habitual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Preventa_Habitual > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Preventa_Habitual);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Preventa_Habitual == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_23.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Repartidor
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_24 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Repartidor = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Repartidor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Repartidor > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Repartidor);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Repartidor == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_24.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Cobrador
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_25 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Cobrador = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Cobrador = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Cobrador > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Cobrador);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Cobrador == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_25.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_COBRADOR),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_CobradorHabitual
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_26 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_CobradorHabitual = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_CobradorHabitual = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_CobradorHabitual > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_CobradorHabitual);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_CobradorHabitual == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_26.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_COBRADORHABITUAL),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idVendedor_Autoventa
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_27 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim() + "_" +
                                                          lng_idEmpresa.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Vendedores.ContainsKey(str_AUX))
                                                {
                                                    lng_idVendedor_Autoventa = g_dct_ids_MAE_Vendedores[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idVendedor_Autoventa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_VENDEDORES_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idVendedor_Autoventa > -1)
                                                    {
                                                        g_dct_ids_MAE_Vendedores.Add(str_AUX, lng_idVendedor_Autoventa);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idVendedor_Autoventa == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_27.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_AUTOVENTA),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);

                                                    
                                                }
                                            }
                                            #endregion

                                            #region idClaveAnalitica
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_30 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_CTA_ClavesAnaliticas.ContainsKey(str_AUX))
                                                {
                                                    lng_idClaveAnalitica = g_dct_ids_CTA_ClavesAnaliticas[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idClaveAnalitica = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_CTA_CLAVESANALITICAS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idClaveAnalitica > -1)
                                                    {
                                                        g_dct_ids_CTA_ClavesAnaliticas.Add(str_AUX, lng_idClaveAnalitica);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idClaveAnalitica == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                           Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                       mdl_INTERNO_Tabla_Modelo.Objeto_30.ToString().Trim(),
                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDCLAVEANALITICA),
                                                                                           nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                           "Nº linea:" + int_Contador_Linea_Excel);


                                                  
                                                }
                                            }
                                            #endregion

                                            #region idRelacionClienteProveedor 
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_18 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim() + "_" + 
                                                    lng_idCliente.ToString();
                                                //......................................................................................

                                                if (g_dct_ids_SRV_RelacionClienteProveedor.ContainsKey(str_AUX))
                                                {
                                                    lng_idRelacionClienteProveedor = g_dct_ids_SRV_RelacionClienteProveedor[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idRelacionClienteProveedor = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_SRV_RELACION_CLIENTEPROVEEDOR_CAMPO_IDCLIENTE,
                                                                                                                lng_idCliente.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                    //Añadir al Diccionario
                                                    if (lng_idRelacionClienteProveedor > -1)
                                                    {
                                                        g_dct_ids_SRV_RelacionClienteProveedor.Add(str_AUX, lng_idRelacionClienteProveedor);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idRelacionClienteProveedor == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_18.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDRELACIONCLIENTEPROVEEDOR),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                                   
                                                }
                                            }
                                            #endregion

                                            #region idFacturaCabecera_PorAlbaran
                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null)
                                            {
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() + "_" +
                                                           lng_idDelegacion.ToString().Trim() + "_" +
                                                           lng_idEmpresa.ToString().Trim() + "_" +
                                                           mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim();

                                                //......................................................................................

                                                if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                                {
                                                    lng_idFacturaCabecera_PorAlbaran = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idFacturaCabecera_PorAlbaran = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                                lng_idDelegacion.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                lng_idEmpresa.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);
                                                    //Añadir al Diccionario
                                                    if (lng_idFacturaCabecera_PorAlbaran > -1)
                                                    {
                                                        g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera_PorAlbaran);
                                                    }

                                                }


                                                //Si no existe muestro error
                                                if (lng_idFacturaCabecera_PorAlbaran == -1)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                          Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA),
                                                                                          nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                          "Nº linea:" + int_Contador_Linea_Excel);

                                                }
                                            }
                                            #endregion

                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_DESCRIPCION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_GUID + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ESTADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDCLIENTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDMONEDA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDIMPUESTOCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDRELACIONCLIENTEPROVEEDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPLEADO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFORMAPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_PREVENTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_PREVENTAHABITUAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_REPARTIDOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_COBRADOR + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_COBRADORHABITUAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDVENDEDOR_AUTOVENTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_REFERENCIA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDPREDEFINIDOCABECERA_ALBARAN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDPREDEFINIDOCABECERA_SERVICIOS + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDCLAVEANALITICA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_SITUACIONPAGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFACTURACABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_OBSERVACIONES + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_BRUTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_IMPUESTO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_RECARGO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_DESCUENTOFINALALNARAN +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                        "@numeroAlbaran," +
                                                                                        "@descripcion," +
                                                                                        "@idDelegacion," +
                                                                                        "@idEmpresa," +
                                                                                        "@fecha," +
                                                                                        "@guid," +
                                                                                        "@estado," +
                                                                                        "@idCliente," +
                                                                                        "@idMoneda," +
                                                                                        "@idImpuestoCabecera," +
                                                                                        "@idRelacionClienteProveedor," +
                                                                                        "@descuentoFinalAlbaran," +
                                                                                        "@idEmpleado," +
                                                                                        "@idFormaPago," +
                                                                                        "@idVendedor_Preventa," +
                                                                                        "@idVendedor_PreventaHabitual," +
                                                                                        "@idVendedor_Repartidor," +
                                                                                        "@idVendedor_Cobrador," +
                                                                                        "@idVendedor_CobradorHabitual," +
                                                                                        "@idVendedor_Autoventa," +
                                                                                        "@referencia," +
                                                                                        "@idPredefinidoCabecera_Albaran," +
                                                                                        "@idPredefinidoCabecera_Servicios," +
                                                                                        "@idClaveAnalitica," +
                                                                                        "@recargo," +
                                                                                        "@situacionPago," +
                                                                                        "@idFacturaCabecera," +
                                                                                        "@observaciones," +
                                                                                         "@total," +
                                                                                        "@total_bruto," +
                                                                                        "@total_baseImponible," +
                                                                                        "@total_impuesto," +
                                                                                        "@total_recargo," +
                                                                                        "@total_descuentoFinalAlbaran" +
                                                                        " ) ";

                                            //Parametros
                                            object[] arr_Parametros_Insert = new object[]
                                            {
                                                new SqlParameter("@numeroAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim()),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_7 != null
                                                    ?   new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_7 )
                                                    :   new SqlParameter("@descripcion",  DBNull.Value),
                                                new SqlParameter("@idDelegacion", lng_idDelegacion),
                                                new SqlParameter("@idEmpresa", lng_idEmpresa),
                                                new SqlParameter("@fecha", mdl_INTERNO_Tabla_Modelo.Objeto_10),
                                                new SqlParameter("@guid",  DBNull.Value),
                                                new SqlParameter("@estado", mdl_INTERNO_Tabla_Modelo.Objeto_13),
                                                lng_idCliente > -1
                                                    ?   new SqlParameter("@idCliente", lng_idCliente )
                                                    :   new SqlParameter("@idCliente",  DBNull.Value),
                                                lng_idMoneda > -1
                                                    ?   new SqlParameter("@idMoneda", lng_idMoneda )
                                                    :   new SqlParameter("@idMoneda",  DBNull.Value),
                                                lng_idImpuestoCabecera > -1
                                                    ?   new SqlParameter("@idImpuestoCabecera", lng_idImpuestoCabecera )
                                                    :   new SqlParameter("@idImpuestoCabecera",  DBNull.Value),
                                                 lng_idRelacionClienteProveedor > -1
                                                    ?   new SqlParameter("@idRelacionClienteProveedor", lng_idRelacionClienteProveedor )
                                                    :   new SqlParameter("@idRelacionClienteProveedor",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_21 != null
                                                    ?   new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_21 )
                                                    :   new SqlParameter("@descuentoFinalAlbaran",  DBNull.Value),
                                                lng_idEmpleado > -1
                                                    ?   new SqlParameter("@idEmpleado", lng_idEmpleado )
                                                    :   new SqlParameter("@idEmpleado",  DBNull.Value),
                                                new SqlParameter("@idFormaPago", lng_idFormaPago),
                                                lng_idVendedor_Preventa > -1
                                                    ?   new SqlParameter("@idVendedor_Preventa", lng_idVendedor_Preventa )
                                                    :   new SqlParameter("@idVendedor_Preventa",  DBNull.Value),
                                                lng_idVendedor_Preventa_Habitual > -1
                                                    ?   new SqlParameter("@idVendedor_PreventaHabitual", lng_idVendedor_Preventa_Habitual )
                                                    :   new SqlParameter("@idVendedor_PreventaHabitual",  DBNull.Value),
                                                lng_idVendedor_Repartidor > -1
                                                    ?   new SqlParameter("@idVendedor_Repartidor", lng_idVendedor_Repartidor )
                                                    :   new SqlParameter("@idVendedor_Repartidor",  DBNull.Value),
                                                lng_idVendedor_Cobrador > -1
                                                    ?   new SqlParameter("@idVendedor_Cobrador", lng_idVendedor_Cobrador )
                                                    :   new SqlParameter("@idVendedor_Cobrador",  DBNull.Value),
                                                lng_idVendedor_CobradorHabitual > -1
                                                    ?   new SqlParameter("@idVendedor_CobradorHabitual", lng_idVendedor_CobradorHabitual )
                                                    :   new SqlParameter("@idVendedor_CobradorHabitual",  DBNull.Value),
                                                lng_idVendedor_Autoventa > -1
                                                    ?   new SqlParameter("@idVendedor_Autoventa", lng_idVendedor_Autoventa )
                                                    :   new SqlParameter("@idVendedor_Autoventa",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_16 != null
                                                    ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_16 )
                                                    :   new SqlParameter("@referencia",  DBNull.Value),
                                                lng_idPredefinidoCabeceraAlbaran > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_Albaran", lng_idPredefinidoCabeceraAlbaran )
                                                    :   new SqlParameter("@idPredefinidoCabecera_Albaran",  DBNull.Value),
                                                lng_idPredefinidoCabeceraServcio > -1
                                                    ?   new SqlParameter("@idPredefinidoCabecera_Servicios", lng_idPredefinidoCabeceraServcio )
                                                    :   new SqlParameter("@idPredefinidoCabecera_Servicios",  DBNull.Value),
                                                lng_idClaveAnalitica > -1
                                                    ?   new SqlParameter("@idClaveAnalitica", lng_idClaveAnalitica )
                                                    :   new SqlParameter("@idClaveAnalitica",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_31 != null
                                                    ?   new SqlParameter("@recargo", mdl_INTERNO_Tabla_Modelo.Objeto_31 )
                                                    :   new SqlParameter("@recargo",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_32 != null
                                                    ?   new SqlParameter("@situacionPago", mdl_INTERNO_Tabla_Modelo.Objeto_32 )
                                                    :   new SqlParameter("@situacionPago",  DBNull.Value),
                                                lng_idFacturaCabecera_PorAlbaran > -1
                                                    ?   new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera_PorAlbaran )
                                                    :   new SqlParameter("@idFacturaCabecera",  DBNull.Value),
                                                mdl_INTERNO_Tabla_Modelo.Objeto_33 != null
                                                    ?   new SqlParameter("@observaciones", mdl_INTERNO_Tabla_Modelo.Objeto_33 )
                                                    :   new SqlParameter("@observaciones",  DBNull.Value),
                                                new SqlParameter("@total", "0.00" ),
                                                new SqlParameter("@total_bruto", "0.00" ),
                                                new SqlParameter("@total_baseImponible", "0.00" ),
                                                new SqlParameter("@total_impuesto", "0.00" ),
                                                new SqlParameter("@total_recargo", "0.00" ),
                                                new SqlParameter("@total_descuentoFinalAlbaran", "0.00" )
                                            };

                                            //Llamamos a la funcion de insertar
                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                                                                    (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                                    mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                            //Todo Correcto
                                            else
                                            {
                                                lng_idAlbaranCabecera = mdl_ValorDevuelto_Modelo.Id;

                                                lst_idAlbaranesCabecera_Insertados.Add(lng_idAlbaranCabecera);

                                                //Añadir al Diccionario
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() + "_" +
                                                           lng_idDelegacion.ToString().Trim() + "_" +
                                                           lng_idEmpresa.ToString().Trim() + "_" +
                                                           mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim();


                                                g_dct_ids_VTA_AlbaranesCabeceras.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_12 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_12.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDFORMAPAGO),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);


                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                               Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO((mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""),
                                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA),
                                                                               nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                               "Nº linea:" + int_Contador_Linea_Excel);

                            }
                        }
                        #region Anexos
                        //Anexos ###########################################################################################
                        if (lng_idAlbaranCabecera > -1)
                        {
                            //Si numeroPedidoCliente esta vacio no relleno anexo
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_39 != null)
                            {
                                #region idAlbaranCabeceraAnexo
                                str_AUX = lng_idAlbaranCabecera.ToString().Trim();

                                if (g_dct_ids_VTA_AlbaranesCabecerasAnexos.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaranCabeceraAnexo = g_dct_ids_VTA_AlbaranesCabecerasAnexos[str_AUX];
                                }
                                else
                                {
                                    lng_idAlbaranCabeceraAnexo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_IDALBARANCABECERA,
                                                                                                                 lng_idAlbaranCabecera.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlbaranCabeceraAnexo > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesCabecerasAnexos.Add(str_AUX, lng_idAlbaranCabeceraAnexo);
                                    }

                                }
                                #endregion


                                //Si no existe inserto el registro
                                if (lng_idAlbaranCabeceraAnexo == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS +
                                                                " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_IDALBARANCABECERA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_NUMERODOCUMENTOMANUAL + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_NUMEROPEDIDOCLIENTE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_IDENTICKET + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_SECCION + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_ANEXOS_CAMPO_DEPARTAMENTO +
                                                                " ) " +
                                                                " OUTPUT INSERTED.id " +
                                                                " VALUES " +
                                                                " ( " +
                                                                            "@idAlbaranCabecera," +
                                                                            "@numeroDocumentoManual," +
                                                                            "@numeroPedidoCliente," +
                                                                            "@identicket," +
                                                                            "@seccion," +
                                                                            "@departamento" +
                                                                " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idAlbaranCabecera", lng_idAlbaranCabecera),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_40 != null
                                        ?   new SqlParameter("@numeroDocumentoManual", mdl_INTERNO_Tabla_Modelo.Objeto_40 )
                                        :   new SqlParameter("@numeroDocumentoManual",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_41 != null
                                        ?   new SqlParameter("@numeroPedidoCliente", mdl_INTERNO_Tabla_Modelo.Objeto_41 )
                                        :   new SqlParameter("@numeroPedidoCliente",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_42 != null
                                        ?   new SqlParameter("@identicket", mdl_INTERNO_Tabla_Modelo.Objeto_42 )
                                        :   new SqlParameter("@identicket",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_43 != null
                                        ?   new SqlParameter("@seccion", mdl_INTERNO_Tabla_Modelo.Objeto_43 )
                                        :   new SqlParameter("@seccion",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_44 != null
                                        ?   new SqlParameter("@departamento", mdl_INTERNO_Tabla_Modelo.Objeto_44 )
                                        :   new SqlParameter("@departamento",  DBNull.Value)

                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                                _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                                mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idAlbaranCabecera.ToString().Trim();

                                        g_dct_ids_VTA_AlbaranesCabecerasAnexos.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }

                            }
                        }
                        //##################################################################################################
                        #endregion
                        #region DatosViaje
                        //DatosViaje ###########################################################################################
                        if (lng_idAlbaranCabecera > -1)
                        {
                            //Si la fechaCarga esta vacia no relleno DatosViaje
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_45 != null)
                            {
                                #region idAlbaraneCabecerDatosViaje
                                str_AUX = lng_idAlbaranCabecera.ToString().Trim();
                                

                                if (g_dct_ids_VTA_AlbaranesCabecerasDatosViaje.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaraneCabecerDatosViaje = g_dct_ids_VTA_AlbaranesCabecerasDatosViaje[str_AUX];
                                }
                                else
                                {
                                    lng_idAlbaraneCabecerDatosViaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_IDALBARANCABECERA,
                                                                                                                 lng_idAlbaranCabecera.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlbaraneCabecerDatosViaje > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesCabecerasDatosViaje.Add(str_AUX, lng_idAlbaraneCabecerDatosViaje);
                                    }

                                }
                                #endregion

                                //Si no existe inserto el registro
                                if (lng_idAlbaraneCabecerDatosViaje == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE +
                                                                  " (" +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_IDALBARANCABECERA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_FECHACARGA + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_MATRICULAVEHICULO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_MATRICULAREMOLQUE + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_ORIGEN + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_DESTINO + "," +
                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_DATOSVIAJE_CAMPO_REFERENCIA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                               "@idAlbaranCabecera," +
                                                                               "@fechaCarga," +
                                                                               "@matriculaVehiculo," +
                                                                               "@matriculaRemolque," +
                                                                               "@origen," +
                                                                               "@destino," +
                                                                               "@referencia" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idAlbaranCabecera", lng_idAlbaranCabecera),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_45 != null
                                            ?   new SqlParameter("@fechaCarga", mdl_INTERNO_Tabla_Modelo.Objeto_45)
                                            :   new SqlParameter("@fechaCarga",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_46 != null
                                            ?   new SqlParameter("@matriculaVehiculo", mdl_INTERNO_Tabla_Modelo.Objeto_46 )
                                            :   new SqlParameter("@matriculaVehiculo",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_47 != null
                                            ?   new SqlParameter("@matriculaRemolque", mdl_INTERNO_Tabla_Modelo.Objeto_47 )
                                            :   new SqlParameter("@matriculaRemolque",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_48 != null
                                            ?   new SqlParameter("@origen", mdl_INTERNO_Tabla_Modelo.Objeto_48 )
                                            :   new SqlParameter("@origen",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_49 != null
                                            ?   new SqlParameter("@destino", mdl_INTERNO_Tabla_Modelo.Objeto_49 )
                                            :   new SqlParameter("@destino",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_50 != null
                                            ?   new SqlParameter("@referencia", mdl_INTERNO_Tabla_Modelo.Objeto_50 )
                                            :   new SqlParameter("@referencia",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idAlbaranCabecera.ToString().Trim();

                                        g_dct_ids_VTA_AlbaranesCabecerasDatosViaje.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion
                        #endregion

                        #region Lineas

                        #region Lineas
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_VENTAS_LINEA))
                        {
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                            {
                                bol_Albaran = true;
                            }

                            if (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null)
                            {
                                //idEmpresa
                                if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""))
                                {
                                    lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""];
                                }

                                //idDelegacion
                                if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                                {
                                    lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                                }

                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                          lng_idDelegacion.ToString().Trim() + "_" +
                                          lng_idEmpresa.ToString().Trim() + "_" +
                                          (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                //......................................................................................

                                if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                {
                                    lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                }
                                else
                                {
                                    lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                        lng_idDelegacion.ToString(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                        lng_idEmpresa.ToString(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idFacturaCabecera > -1)
                                    {
                                        g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                    }

                                }
                            }
                           
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_2 == null || mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim().Length == 0 || mdl_INTERNO_Tabla_Modelo.Objeto_2 != null && lng_idFacturaCabecera>-1)
                            {

                                #region Buscar Albaran
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_3!=null)
                                {
                                    //idEmpresa
                                    if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""))
                                    {
                                        lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""];
                                    }

                                    //idDelegacion
                                    if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                                    {
                                        lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                                    }

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_VTA_AlbaranesCabeceras.ContainsKey(str_AUX))
                                    {
                                        lng_idAlbaranCabecera = g_dct_ids_VTA_AlbaranesCabeceras[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAlbaranCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString(),
                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAlbaranCabecera > -1)
                                        {
                                            g_dct_ids_VTA_AlbaranesCabeceras.Add(str_AUX, lng_idAlbaranCabecera);
                                        }

                                    }
                                }
                                #endregion

                                if (mdl_INTERNO_Tabla_Modelo.Objeto_3==null || 
                                    mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim().Length==0 ||  
                                    (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null && lng_idAlbaranCabecera>-1))
                                {
                                    #region  idTipoCompraVenta
                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim();
                                    //......................................................................................

                                    if (g_dct_ids_GEN_TiposCompraVenta.ContainsKey(str_AUX))
                                    {
                                        lng_idTipoCompraVenta = g_dct_ids_GEN_TiposCompraVenta[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idTipoCompraVenta = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_TIPOSCOMPRAVENTA_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idTipoCompraVenta > -1)
                                        {
                                            g_dct_ids_GEN_TiposCompraVenta.Add(str_AUX, lng_idTipoCompraVenta);
                                        }

                                    }

                                    #endregion

                                    //si existe el registro continuo
                                    if (lng_idTipoCompraVenta > -1)
                                    {
                                        #region idAlmacen
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_GEN_Almacenes.ContainsKey(str_AUX))
                                        {
                                            lng_idAlmacen = g_dct_ids_GEN_Almacenes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idAlmacen = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_ID,
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_GEN_ALMACENES_CAMPO_CODIGO,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idAlmacen > -1)
                                            {
                                                g_dct_ids_GEN_Almacenes.Add(str_AUX, lng_idAlmacen);
                                            }

                                        }
                                        #endregion

                                        //si existe el registro continuo
                                        if (lng_idAlmacen > -1)
                                        {
                                            #region idEmbalaje
                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                            str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim();
                                            //......................................................................................

                                            if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                            {
                                                lng_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idEmbalaje > -1)
                                                {
                                                    g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje);
                                                }

                                            }
                                            #endregion

                                            //si existe el registro continuo
                                            if (lng_idEmbalaje > -1)
                                            {
                                                #region idEmbalaje_EmbalajePrincipal
                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim();
                                                //......................................................................................

                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = g_dct_ids_MAE_Embalajes[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idEmbalaje_EmbalajePrincipal = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                    {
                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal);
                                                    }

                                                }
                                                #endregion

                                                //si existe el registro continuo
                                                if (lng_idEmbalaje_EmbalajePrincipal > -1)
                                                {
                                                    #region idNomenclaturaPrecio
                                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim();
                                                    //......................................................................................

                                                    if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                                    {
                                                        lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                                    }
                                                    else
                                                    {
                                                        lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        //Añadir al Diccionario
                                                        if (lng_idNomenclaturaPrecio> -1)
                                                        {
                                                            g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                                        }

                                                    }
                                                    #endregion

                                                    //si existe el registro continuo
                                                    if (lng_idNomenclaturaPrecio > -1)
                                                    {
                                                        #region idAlbaranesFacturasLineas(Facturas)

                                                        if (bol_Albaran==false)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX = "F_" + 
                                                                        lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim() : "");
                                                            //......................................................................................

                                                            if (g_dct_ids_VTA_AlbaranesFacturasLineas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idAlbaranesFacturasLineas = g_dct_ids_VTA_AlbaranesFacturasLineas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idAlbaranesFacturasLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA,
                                                                                                                                            lng_idFacturaCabecera.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN,
                                                                                                                                            lng_idAlmacen.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAFACTURA,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idAlbaranesFacturasLineas > -1)
                                                                {
                                                                    g_dct_ids_VTA_AlbaranesFacturasLineas.Add(str_AUX, lng_idAlbaranesFacturasLineas);
                                                                }

                                                            }


                                                        }
                                                        #endregion

                                                        #region idAlbaranesFacturasLineas(Albaranes)
  
                                                        if (bol_Albaran)
                                                        {
                                                            //Compruebo si existe el registro en base de datos por el codigo .......................
                                                            str_AUX =  "A_" +
                                                                        lng_idAlbaranCabecera.ToString().Trim() + "_" +
                                                                        lng_idAlmacen.ToString().Trim() + "_" +
                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : "");
                                                            //......................................................................................

                                                            if (g_dct_ids_VTA_AlbaranesFacturasLineas.ContainsKey(str_AUX))
                                                            {
                                                                lng_idAlbaranesFacturasLineas = g_dct_ids_VTA_AlbaranesFacturasLineas[str_AUX];
                                                            }
                                                            else
                                                            {
                                                                lng_idAlbaranesFacturasLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_ID,
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA,
                                                                                                                                        lng_idAlbaranCabecera.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN,
                                                                                                                                        lng_idAlmacen.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAALBARAN,
                                                                                                                                        (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : ""),
                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                //Añadir al Diccionario
                                                                if (lng_idAlbaranesFacturasLineas > -1)
                                                                {
                                                                    g_dct_ids_VTA_AlbaranesFacturasLineas.Add(str_AUX, lng_idAlbaranesFacturasLineas);
                                                                }

                                                            }


                                                        }
                                                        #endregion

                                                        //si no existe inserto
                                                        if (lng_idAlbaranesFacturasLineas == -1)
                                                        {
                                                            #region idAlbaranFacturaLinea_PromocionesTarifasAsociadas
                                                            //Si contiene algo busco el idAlbaranFacturaLinea_PromocionesTarifasAsociadas
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_52 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = lng_idAlbaranesFacturasLineas.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas = g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES,
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_IDALBARANFACTURALINEA,
                                                                                                                                                                        lng_idAlbaranesFacturasLineas.ToString().Trim(),
                                                                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas > -1)
                                                                    {
                                                                        g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.Add(str_AUX, lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" +(mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_52.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANFACTURALINEA_PROMOCIONESTARIFASASOCIADAS),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                            }
                                                            #endregion

                                                            #region idDelegacion (Pedido)
                                                            //Si contiene algo busco el idAlbaranFacturaLinea_PromocionesTarifasAsociadas
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_54 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim() + "_" +
                                                                          lng_idEmpresa.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_Delegaciones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idDelegacion_PedidoLinea = g_dct_ids_GEN_Delegaciones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idDelegacion_PedidoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_ID,
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_CODIGO,
                                                                                                                             mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim(),
                                                                                                                             Variables_TraspasoDatos.G_STR_TABLA_GEN_DELEGACIONES_CAMPO_IDEMPRESA,
                                                                                                                             lng_idEmpresa.ToString().Trim(),
                                                                                                                             Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idDelegacion_PedidoLinea > -1)
                                                                    {
                                                                        g_dct_ids_GEN_Delegaciones.Add(str_AUX, lng_idDelegacion_PedidoLinea);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idDelegacion_PedidoLinea == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_54.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }

                                                            }
                                                            #endregion

                                                            #region idPedidoLinea
                                                            //Si contiene algo busco el 
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_53 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX =   mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim() + "_" + 
                                                                            lng_idDelegacion_PedidoLinea + "_" + 
                                                                            lng_idEmpresa.ToString().Trim() + "_" +
                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_VTA_PedidosCabeceras.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idPedidosCabecera = g_dct_ids_VTA_PedidosCabeceras[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idPedidosCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_ID,
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDDELEGACION,
                                                                                                                         lng_idDelegacion_PedidoLinea.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_IDEMPRESA,
                                                                                                                         lng_idEmpresa.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_FECHA,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_56.ToString().Trim(),
                                                                                                                         Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idPedidosCabecera > -1)
                                                                    {
                                                                        g_dct_ids_VTA_PedidosCabeceras.Add(str_AUX, lng_idPedidosCabecera);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idPedidosCabecera == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSCABECERA_CAMPO_NUMERODOCUMENTO,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDPEDIDOLINEA),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                                else
                                                                {
                                                                    //......................................................................................
                                                                    lng_idPedidoLinea = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_NUMEROLINEA,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_55.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_PEDIDOSLINEAS_CAMPO_IDPEDIDOCABECERA,
                                                                                                                    lng_idPedidosCabecera.ToString().Trim(),
                                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                       

                                                                    //Si no existe muestro error
                                                                    if (lng_idPedidoLinea == -1)
                                                                    {
                                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_53.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDPEDIDOLINEA),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                    }



                                                                }
                                                            }
                                                            #endregion

                                                            #region idArticulo
                                                            //Si contiene algo busco el idArticulo
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_57 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idArticulo > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idArticulo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULO),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                            }
                                                            #endregion

                                                            #region idArticuloComodin
                                                            //Si contiene algo busco el idArticuloComodin
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_58!=null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_ArticulosComodin.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idArticuloComodin = g_dct_ids_MAE_ArticulosComodin[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idArticuloComodin = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOSCOMODIN_CAMPO_IDEMPRESA,
                                                                                                                                lng_idEmpresa.ToString(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idArticuloComodin > -1)
                                                                    {
                                                                        g_dct_ids_MAE_ArticulosComodin.Add(str_AUX, lng_idArticuloComodin);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idArticuloComodin == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_58.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULOCOMODIN),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                            }
                                                            #endregion

                                                            #region idUbicacion
                                                            //Si contiene algo busco el idUbicacion
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_61 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Ubicaciones.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idUbicacion = g_dct_ids_MAE_Ubicaciones[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idUbicacion = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_ID,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_UBICACIONES_CAMPO_CODIGO,
                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idUbicacion > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Ubicaciones.Add(str_AUX, lng_idUbicacion);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idUbicacion == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_61.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIDUBICACION),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);


                                                                    
                                                                }
                                                            }
                                                            #endregion

                                                            #region idEmbalaje_SegundaUnidad
                                                            //Si contiene algo busco el SegundaUnidad_idEmbalaje
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_68 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_SegundaUnidad);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_68.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDEMBALAJE),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);


                                                                   
                                                                }
                                                            }
                                                            #endregion

                                                            #region idImpuestoTipo
                                                            //Si contiene algo busco el idImpuestoTipo
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_75 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_ImpuestosTipos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idImpuestoTipo = g_dct_ids_GEN_ImpuestosTipos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idImpuestoTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_GEN_IMPUESTOSTIPOS_CAMPO_CODIGO,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idImpuestoTipo > -1)
                                                                    {
                                                                        g_dct_ids_GEN_ImpuestosTipos.Add(str_AUX, lng_idImpuestoTipo);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idImpuestoTipo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_75.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIMPUESTOTIPO),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);


                                                                    
                                                                }
                                                            }
                                                            #endregion

                                                            #region idAlbaranFacturaLinea_Padre
                                                            //Si contiene algo busco el idAlbaranFacturaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_76 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................

                                                                if (bol_Albaran ==false)
                                                                {
                                                                    str_AUX = "F_" +
                                                                                lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                                                  (mdl_INTERNO_Tabla_Modelo.Objeto_76 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim() : "");
                                                                }
                                                                else
                                                                {
                                                                    str_AUX = "A_" +
                                                                                lng_idAlbaranCabecera.ToString().Trim() + "_" +
                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_76 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim() : "");
                                                                }
    
                                                                //......................................................................................

                                                                if (g_dct_ids_VTA_AlbaranesFacturasLineas.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idAlbaranFacturaLinea_Padre = g_dct_ids_VTA_AlbaranesFacturasLineas[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idAlbaranFacturaLinea_Padre = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                (bol_Albaran==false ? Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA :
                                                                                                                                                    (
                                                                                                                                                    lng_idAlbaranCabecera > -1 ? Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA : ""
                                                                                                                                                    )
                                                                                                                                                ),
                                                                                                                                                (bol_Albaran == false ? lng_idFacturaCabecera.ToString() : lng_idAlbaranCabecera.ToString()),
                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN,
                                                                                                                                                lng_idAlmacen.ToString().Trim(),
                                                                                                                                                (bol_Albaran == false  ? Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAFACTURA : Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAALBARAN),
                                                                                                                                                (mdl_INTERNO_Tabla_Modelo.Objeto_76 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim() : ""),
                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idAlbaranFacturaLinea_Padre > -1)
                                                                    {
                                                                        g_dct_ids_VTA_AlbaranesFacturasLineas.Add(str_AUX, lng_idAlbaranFacturaLinea_Padre);
                                                                    }

                                                                }

                                                                //Si no existe muestro error
                                                                if (lng_idAlbaranFacturaLinea_Padre == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_76.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);



                                                                }

                                                            }
                                                            #endregion

                                                            #region idEmbalaje_EmbalajePrincipal_SegundaUnidad
                                                            //Si contiene algo busco el idSolicitudOfertaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_83 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = g_dct_ids_MAE_Embalajes[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1)
                                                                    {
                                                                        g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_83.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);

                                                                }
                                                            }
                                                            #endregion

                                                            #region idRetencionTipo
                                                            //Si contiene algo busco el idSolicitudOfertaLinea_Padre
                                                            if (mdl_INTERNO_Tabla_Modelo.Objeto_86 != null)
                                                            {
                                                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim();
                                                                //......................................................................................

                                                                if (g_dct_ids_GEN_RetencionesTipos.ContainsKey(str_AUX))
                                                                {
                                                                    lng_idRetencionTipo = g_dct_ids_GEN_RetencionesTipos[str_AUX];
                                                                }
                                                                else
                                                                {
                                                                    lng_idRetencionTipo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_ID,
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_RETENCIONESTIPOS_CAMPO_CODIGO,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                                    //Añadir al Diccionario
                                                                    if (lng_idRetencionTipo > -1)
                                                                    {
                                                                        g_dct_ids_GEN_RetencionesTipos.Add(str_AUX, lng_idRetencionTipo);
                                                                    }

                                                                }


                                                                //Si no existe muestro error
                                                                if (lng_idRetencionTipo == -1)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_86.ToString().Trim(),
                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDRETENCIONTIPO),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                            }
                                                            #endregion

                                                            string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS +
                                                                        " (" +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDTIPOCOMPRAVENTA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANFACTURALINEA_PROMOCIONESTARIFASASOCIADAS + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDPEDIDOLINEA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULOCOMODIN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_DESCRIPCIONARTICULOCOMODIN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIDUBICACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_CANTIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDEMBALAJE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_RELACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_OPERACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_SEGUNDAUNIDAD_CANTIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_PRECIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROREDONDEO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_DESCUENTOGENERAL + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IMPORTE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIMPUESTOTIPO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANFACTURALINEA_PADRE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_RELACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_OPERACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_PRECIO + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_PRECIO_CANTIDAD_SEGUNDAUNIDAD + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_RELACION + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_SEGUNDAUNIDAD_IDEMBALAJE + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAFACTURA + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAALBARAN + "," +
                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDRETENCIONTIPO +
                                                                        " ) " +
                                                                        " OUTPUT INSERTED.id " +
                                                                        " VALUES " +
                                                                        " ( " +
                                                                                            "@idFacturaCabecera," +
                                                                                            "@idAlbaranCabecera," +
                                                                                            "@idTipoCompraVenta," +
                                                                                            "@idAlbaranFacturaLinea_PromocionesTarifasAsociadas," +
                                                                                            "@idPedidoLinea," +
                                                                                            "@idArticulo," +
                                                                                            "@idArticuloComodin," +
                                                                                            "@descripcionArticuloComodin," +
                                                                                            "@idAlmacen," +
                                                                                            "@idUbicacion," +
                                                                                            "@cantidad," +
                                                                                            "@idEmbalaje," +
                                                                                            "@relacion," +
                                                                                            "@operacion," +
                                                                                            "@segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                            "@segundaUnidad_relacion," +
                                                                                            "@segundaUnidad_idEmbalaje," +
                                                                                            "@segundaUnidad_cantidad," +
                                                                                            "@idNomenclaturaPrecio," +
                                                                                            "@precio," +
                                                                                            "@numeroRedondeo," +
                                                                                            "@descuentoGeneral," +
                                                                                            "@importe," +
                                                                                            "@idImpuestoTipo," +
                                                                                            "@idAlbaranFacturaLinea_Padre," +
                                                                                            "@embalajePrincipalDelArticulo_idEmbalaje," +
                                                                                            "@embalajePrincipalDelArticulo_relacion," +
                                                                                            "@embalajePrincipalDelArticulo_operacion," +
                                                                                            "@embalajePrincipalDelArticulo_precio," +
                                                                                            "@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad," +
                                                                                            "@embalajePrincipalDelArticulo_segundaUnidad_relacion," +
                                                                                            "@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje," +
                                                                                            "@numeroLineaFactura," +
                                                                                            "@numeroLineaAlbaran," +
                                                                                            "@idRetencionTipo" +

                                                                        " ) ";

                                                            //Parametros
                                                            object[] arr_Parametros_Insert = new object[]
                                                            {
                                                                lng_idFacturaCabecera > -1
                                                                    ?   new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera )
                                                                    :   new SqlParameter("@idFacturaCabecera",  DBNull.Value),
                                                                lng_idAlbaranCabecera > -1
                                                                    ?   new SqlParameter("@idAlbaranCabecera", lng_idAlbaranCabecera )
                                                                    :   new SqlParameter("@idAlbaranCabecera",  DBNull.Value),
                                                                new SqlParameter("@idTipoCompraVenta", lng_idTipoCompraVenta),
                                                                lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas > -1
                                                                    ?   new SqlParameter("@idAlbaranFacturaLinea_PromocionesTarifasAsociadas", lng_idAlbaranFacturaLinea_PromocionesTarifasAsociadas )
                                                                    :   new SqlParameter("@idAlbaranFacturaLinea_PromocionesTarifasAsociadas",  DBNull.Value),
                                                                lng_idPedidoLinea > -1
                                                                    ?   new SqlParameter("@idPedidoLinea", lng_idPedidoLinea )
                                                                    :   new SqlParameter("@idPedidoLinea",  DBNull.Value),
                                                                lng_idArticulo > -1
                                                                    ?   new SqlParameter("@idArticulo", lng_idArticulo )
                                                                    :   new SqlParameter("@idArticulo",  DBNull.Value),
                                                                lng_idArticuloComodin > -1
                                                                    ?   new SqlParameter("@idArticuloComodin", lng_idArticuloComodin )
                                                                    :   new SqlParameter("@idArticuloComodin",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_59 != null
                                                                    ?   new SqlParameter("@descripcionArticuloComodin", mdl_INTERNO_Tabla_Modelo.Objeto_59  )
                                                                    :   new SqlParameter("@descripcionArticuloComodin",  DBNull.Value),
                                                                new SqlParameter("@idAlmacen", lng_idAlmacen),
                                                                lng_idUbicacion > -1
                                                                    ?   new SqlParameter("@idUbicacion", lng_idUbicacion )
                                                                    :   new SqlParameter("@idUbicacion",  DBNull.Value),
                                                                new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_62),
                                                                new SqlParameter("@idEmbalaje", lng_idEmbalaje),
                                                                new SqlParameter("@relacion", mdl_INTERNO_Tabla_Modelo.Objeto_64),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_65 != null
                                                                    ?   new SqlParameter("@operacion", mdl_INTERNO_Tabla_Modelo.Objeto_65 )
                                                                    :   new SqlParameter("@operacion",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_66 != null
                                                                    ?   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_66 )
                                                                    :   new SqlParameter("@segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_67 != null
                                                                    ?   new SqlParameter("@segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_67 )
                                                                    :   new SqlParameter("@segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_SegundaUnidad > -1
                                                                    ?   new SqlParameter("@segundaUnidad_idEmbalaje", lng_idEmbalaje_SegundaUnidad )
                                                                    :   new SqlParameter("@segundaUnidad_idEmbalaje",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_69 != null
                                                                    ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_69 )
                                                                    :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value),
                                                                new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio),
                                                                new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_71),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_72 != null
                                                                    ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_72 )
                                                                    :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_73 != null
                                                                    ?   new SqlParameter("@descuentoGeneral", mdl_INTERNO_Tabla_Modelo.Objeto_73 )
                                                                    :   new SqlParameter("@descuentoGeneral",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_74 != null
                                                                    ?   new SqlParameter("@importe", mdl_INTERNO_Tabla_Modelo.Objeto_74 )
                                                                    :   new SqlParameter("@importe",  DBNull.Value),
                                                                lng_idImpuestoTipo > -1
                                                                    ?   new SqlParameter("@idImpuestoTipo", lng_idImpuestoTipo )
                                                                    :   new SqlParameter("@idImpuestoTipo",  DBNull.Value),
                                                                lng_idAlbaranFacturaLinea_Padre > -1
                                                                    ?   new SqlParameter("@idAlbaranFacturaLinea_Padre", lng_idAlbaranFacturaLinea_Padre )
                                                                    :   new SqlParameter("@idAlbaranFacturaLinea_Padre",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_78),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_79!= null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_operacion", mdl_INTERNO_Tabla_Modelo.Objeto_79 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_operacion",  DBNull.Value),
                                                                new SqlParameter("@embalajePrincipalDelArticulo_precio", mdl_INTERNO_Tabla_Modelo.Objeto_80 ),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_81 != null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad", mdl_INTERNO_Tabla_Modelo.Objeto_81 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_Precio_Cantidad_SegundaUnidad",  DBNull.Value),
                                                                mdl_INTERNO_Tabla_Modelo.Objeto_82 != null
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion", mdl_INTERNO_Tabla_Modelo.Objeto_82 )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_relacion",  DBNull.Value),
                                                                lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad > -1
                                                                    ?   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje", lng_idEmbalaje_EmbalajePrincipal_SegundaUnidad )
                                                                    :   new SqlParameter("@embalajePrincipalDelArticulo_segundaUnidad_idEmbalaje",  DBNull.Value),
                                                                new SqlParameter("@numeroLineaFactura", mdl_INTERNO_Tabla_Modelo.Objeto_84 !=null ? mdl_INTERNO_Tabla_Modelo.Objeto_84 : ""),
                                                                new SqlParameter("@numeroLineaAlbaran", mdl_INTERNO_Tabla_Modelo.Objeto_85 !=null ? mdl_INTERNO_Tabla_Modelo.Objeto_85 : ""),
                                                                lng_idRetencionTipo > -1
                                                                    ?   new SqlParameter("@idRetencionTipo", lng_idRetencionTipo )
                                                                    :   new SqlParameter("@idRetencionTipo",  DBNull.Value),
                                                            };

                                                            //Llamamos a la funcion de insertar
                                                            mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                            if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                            {
                                                                if (bol_Albaran==false)
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA,
                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                                else
                                                                {
                                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                       Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA,
                                                                                                                                                   (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                                   Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                   mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                       nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                       "Nº linea:" + int_Contador_Linea_Excel);
                                                                }
                                                               }
                                                            //Todo Correcto
                                                            else
                                                            {
                                                                lng_idAlbaranesFacturasLineas = mdl_ValorDevuelto_Modelo.Id;

                                                                //Añadir al Diccionario
                                                                if(bol_Albaran==false)
                                                                {
                                                                    str_AUX = "F_" +
                                                                       lng_idFacturaCabecera.ToString().Trim() + "_" +
                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim() : "");
                                                                }
                                                                else
                                                                {
                                                                    str_AUX = "A_" +
                                                                       lng_idAlbaranCabecera.ToString().Trim() + "_" +
                                                                       (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : "");

                                                                }
                                                               

                                                                g_dct_ids_VTA_AlbaranesFacturasLineas.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                            }

                                                        }
                                                    }
                                                    else
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_70 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_70.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDNOMENCLATURAPRECIO),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                                    }
                                                }
                                                else
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_77 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_77.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_EMBALAJEPRINCIPALDELARTICULO_IDEMBALAJE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_63 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_63.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDEMBALAJE),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_60 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_60.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_51 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_51.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDTIPOCOMPRAVENTA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);

                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO("F" + (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "- A" + (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : ""),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA),
                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        //###################################################################################################
                        #endregion

                        #region Comentario
                        //Comentario ###########################################################################################
                        if (lng_idAlbaranesFacturasLineas > -1)
                        {
                            //Si no tiene comentario no relleno comentario
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_87 != null)
                            {
                                #region idAlbaranesFacturasLineas_Comentario
                                str_AUX = lng_idAlbaranesFacturasLineas.ToString().Trim();

                                if (g_dct_ids_VTA_AlbaranesFacturasLineasComentarios.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaranesFacturasLineas_Comentario = g_dct_ids_VTA_AlbaranesFacturasLineasComentarios[str_AUX];
                                }
                                else
                                {
                                    lng_idAlbaranesFacturasLineas_Comentario = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS_CAMPO_ID,
                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS_CAMPO_IDALBARANFACTURALINEA,
                                                                                                                 lng_idAlbaranesFacturasLineas.ToString().Trim(),
                                                                                                                 Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlbaranesFacturasLineas_Comentario > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesFacturasLineasComentarios.Add(str_AUX, lng_idAlbaranesFacturasLineas_Comentario);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idAlbaranesFacturasLineas_Comentario == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS +
                                                                   " (" +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS_CAMPO_IDALBARANFACTURALINEA + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS_CAMPO_COMENTARIO + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_COMENTARIOS_CAMPO_MOSTRARIMPRESION +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idAlbaranFacturaLinea," +
                                                                          "@comentario," +
                                                                          "@mostrarImpresion" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idAlbaranFacturaLinea", lng_idAlbaranesFacturasLineas ),
                                    new SqlParameter("@comentario", mdl_INTERNO_Tabla_Modelo.Objeto_87 ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_88 != null
                                        ?   new SqlParameter("@mostrarImpresion", mdl_INTERNO_Tabla_Modelo.Objeto_88 )
                                        :   new SqlParameter("@mostrarImpresion",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idAlbaranesFacturasLineas.ToString().Trim();

                                        g_dct_ids_VTA_AlbaranesFacturasLineasComentarios.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //#######################################################################################################
                        #endregion

                        #region Trazabilidad
                        //Lineas ###########################################################################################
                        if (str_Identificador.Equals(Variables_TraspasoDatos.G_STR_IDENTIFICADOR_VENTAS_TRAZABILIDAD))
                        {
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_89 != null && mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString().Trim().Length > 0)
                            {
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                                {
                                    bol_Albaran = true;
                                }
                              
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null)
                                {
                                    //idEmpresa
                                    if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""))
                                    {
                                        lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""];
                                    }

                                    //idDelegacion
                                    if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                                    {
                                        lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_4 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_4.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                                    }

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_2 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim() : "") + "_" +
                                              lng_idDelegacion.ToString().Trim() + "_" +
                                              lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                    {
                                        lng_idFacturaCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idFacturaCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_NUMEROFACTURA,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_2.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_9 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_9.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idFacturaCabecera > -1)
                                        {
                                            g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idFacturaCabecera);
                                        }

                                    }
                                }

                                #region Buscar Albaran
                                if (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null)
                                {
                                    //idEmpresa
                                    if (g_dct_ids_GEN_Empresas.ContainsKey(mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""))
                                    {
                                        lng_idEmpresa = g_dct_ids_GEN_Empresas[mdl_INTERNO_Tabla_Modelo.Objeto_6 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString().Trim() : ""];
                                    }

                                    //idDelegacion
                                    if (g_dct_ids_GEN_Delegaciones.ContainsKey((mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()))
                                    {
                                        lng_idDelegacion = g_dct_ids_GEN_Delegaciones[(mdl_INTERNO_Tabla_Modelo.Objeto_5 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_5.ToString().Trim() : "") + "_" + lng_idEmpresa.ToString().Trim()];
                                    }

                                    //Compruebo si existe el registro en base de datos por el codigo .......................
                                    str_AUX = (mdl_INTERNO_Tabla_Modelo.Objeto_3 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim() : "") + "_" +
                                                lng_idDelegacion.ToString().Trim() + "_" +
                                                lng_idEmpresa.ToString().Trim() + "_" +
                                              (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : "");
                                    //......................................................................................

                                    if (g_dct_ids_VTA_FacturasCabeceras.ContainsKey(str_AUX))
                                    {
                                        lng_idAlbaranCabecera = g_dct_ids_VTA_FacturasCabeceras[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idAlbaranCabecera = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_NUMEROALBARAN,
                                                                                                            mdl_INTERNO_Tabla_Modelo.Objeto_3.ToString().Trim(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDDELEGACION,
                                                                                                            lng_idDelegacion.ToString(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                            lng_idEmpresa.ToString(),
                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA,
                                                                                                            (mdl_INTERNO_Tabla_Modelo.Objeto_10 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_10.ToString().Trim() : ""),
                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idAlbaranCabecera > -1)
                                        {
                                            g_dct_ids_VTA_FacturasCabeceras.Add(str_AUX, lng_idAlbaranCabecera);
                                        }

                                    }
                                }
                                #endregion

                                #region idAlbaranesFacturasLineas

                                //Añadir al Diccionario
                                if (bol_Albaran==false)
                                {
                                    str_AUX = "F_" +
                                       lng_idFacturaCabecera.ToString().Trim() + "_" +
                                       (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim() : "");
                                }
                                else
                                {
                                    str_AUX = "A_" +
                                       lng_idAlbaranCabecera.ToString().Trim() + "_" +
                                       (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : "");

                                }
                                //......................................................................................

                                if (g_dct_ids_VTA_AlbaranesFacturasLineas.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaranesFacturasLineas = g_dct_ids_VTA_AlbaranesFacturasLineas[str_AUX];
                                }
                                else
                                {
                                    if (bol_Albaran==false)
                                    {
                                        lng_idAlbaranesFacturasLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA,
                                                                                                                           lng_idFacturaCabecera.ToString(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN,
                                                                                                                           lng_idAlmacen.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAFACTURA,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_84 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_84.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);
                                    }
                                    else
                                    {
                                        lng_idAlbaranesFacturasLineas = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA,
                                                                                                                           lng_idAlbaranCabecera.ToString(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALMACEN,
                                                                                                                           lng_idAlmacen.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_NUMEROLINEAALBARAN,
                                                                                                                           (mdl_INTERNO_Tabla_Modelo.Objeto_85 != null ? mdl_INTERNO_Tabla_Modelo.Objeto_85.ToString().Trim() : ""),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);
                                    }

                                    //Añadir al Diccionario
                                    if (lng_idAlbaranesFacturasLineas > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesFacturasLineas.Add(str_AUX, lng_idAlbaranesFacturasLineas);
                                    }

                                }
                                #endregion

                                if (lng_idAlbaranesFacturasLineas>-1)
                                {
                                    #region idEmpresa
                                    str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString();

                                    if (g_dct_ids_GEN_Empresas.ContainsKey(str_AUX))
                                    {
                                        lng_idEmpresa = g_dct_ids_GEN_Empresas[str_AUX];
                                    }
                                    else
                                    {
                                        lng_idEmpresa = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_ID,
                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_GEN_EMPRESAS_CAMPO_CODIGO,
                                                                                                                mdl_INTERNO_Tabla_Modelo.Objeto_6.ToString(),
                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                        //Añadir al Diccionario
                                        if (lng_idEmpresa > -1)
                                        {
                                            g_dct_ids_GEN_Empresas.Add(str_AUX, lng_idEmpresa);
                                        }

                                    }
                                    #endregion

                                    //si existe continuo
                                    if (lng_idEmpresa > -1)
                                    {

                                        #region idArticulo
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString() + "_" +
                                                    lng_idEmpresa.ToString().Trim();

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_57.ToString(),
                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                                    lng_idEmpresa.ToString().Trim(),
                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_idArticulo);
                                            }

                                        }
                                        #endregion

                                        //si existe continuo
                                        if (lng_idArticulo > -1)
                                        {
                                            #region idArticulo_Trazabilidad
                                            str_AUX = lng_idArticulo.ToString().Trim() + "_" +
                                                      mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString();

                                            if (g_dct_ids_MAE_Articulos_Trazabilidad.ContainsKey(str_AUX))
                                            {
                                                lng_idArticulo_Trazabilidad = g_dct_ids_MAE_Articulos_Trazabilidad[str_AUX];
                                            }
                                            else
                                            {
                                                lng_idArticulo_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_IDARTICULO,
                                                                                                                        lng_idArticulo.ToString().Trim(),
                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_TRAZABILIDAD_CAMPO_LOTE,
                                                                                                                         mdl_INTERNO_Tabla_Modelo.Objeto_89.ToString(),
                                                                                                                        Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                //Añadir al Diccionario
                                                if (lng_idArticulo_Trazabilidad > -1)
                                                {
                                                    g_dct_ids_MAE_Articulos_Trazabilidad.Add(str_AUX, lng_idArticulo_Trazabilidad);
                                                }

                                            }
                                            #endregion

                                            //si existe continuo
                                            if (lng_idArticulo_Trazabilidad > -1)
                                            {
                                                #region idAlbaranesFacturasLinea_Trazabilidad
                                                str_AUX = lng_idArticulo_Trazabilidad.ToString().Trim() + "_" +
                                                            mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim();

                                                if (g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad.ContainsKey(str_AUX))
                                                {
                                                    lng_idAlbaranesFacturasLinea_Trazabilidad = g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad[str_AUX];
                                                }
                                                else
                                                {
                                                    lng_idAlbaranesFacturasLinea_Trazabilidad = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_ID,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                    lng_idArticulo_Trazabilidad.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_CANTIDAD,
                                                                                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim(),
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    //Añadir al Diccionario
                                                    if (lng_idAlbaranesFacturasLinea_Trazabilidad > -1)
                                                    {
                                                        g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad.Add(str_AUX, lng_idAlbaranesFacturasLinea_Trazabilidad);
                                                    }

                                                }
                                                #endregion


                                                //si no existe inserto
                                                if (lng_idAlbaranesFacturasLinea_Trazabilidad == -1)
                                                {
                                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD +
                                                                                    " (" +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDALBARANFACTURALINEA + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_CANTIDAD + "," +
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_SEGUNDAUNIDAD_CANTIDAD +
                                                                                    " ) " +
                                                                                    " OUTPUT INSERTED.id " +
                                                                                    " VALUES " +
                                                                                    " ( " +
                                                                                            "@idArticulo_Trazabilidad," +
                                                                                            "@idAlbaranFacturaLinea," +
                                                                                            "@cantidad," +
                                                                                            "@segundaUnidad_cantidad" +
                                                                                    " ) ";

                                                    //Parametros
                                                    object[] arr_Parametros_Insert = new object[]
                                                    {
                                                        new SqlParameter("@idArticulo_Trazabilidad", lng_idArticulo_Trazabilidad ),
                                                        new SqlParameter("@idAlbaranFacturaLinea", lng_idAlbaranesFacturasLineas ),
                                                        new SqlParameter("@cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_90 ),
                                                        mdl_INTERNO_Tabla_Modelo.Objeto_91 != null
                                                                ?   new SqlParameter("@segundaUnidad_cantidad", mdl_INTERNO_Tabla_Modelo.Objeto_91 )
                                                                :   new SqlParameter("@segundaUnidad_cantidad",  DBNull.Value)
                                                    };

                                                    //Llamamos a la funcion de insertar
                                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                    {
                                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                                                _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                                                mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                                                mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                        "Nº linea:" + int_Contador_Linea_Excel);
                                                    }
                                                    else
                                                    {
                                                        //Añadir al Diccionario
                                                        str_AUX = lng_idArticulo_Trazabilidad.ToString().Trim() + "_" +
                                                                    mdl_INTERNO_Tabla_Modelo.Objeto_90.ToString().Trim();

                                                        g_dct_ids_VTA_AlbaranesFacturasLineasTrazabilidad.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                            _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                            mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                            "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                }

                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                        _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                        mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TRAZABILIDAD_CAMPO_IDARTICULO_TRAZABILIDAD,
                                                                                                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOEXITE_REGISTROBD()),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                        "Nº linea:" + int_Contador_Linea_Excel);
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region TarifaPromociones
                        //TarifacPromociones ###########################################################################################
                        if (lng_idAlbaranesFacturasLineas > -1)
                        {
                            //Si codigo esta vacio no relleno tarifaspromociones
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_92 != null)
                            {
                                //Compruebo si existe el registro en base de datos por el codigo .......................
                                str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_92.ToString().Trim() + "_" +
                                          lng_idAlbaranesFacturasLineas.ToString().Trim();
                                //......................................................................................

                                if (g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaranFacturaLinea_TarifasPromociones = g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones[str_AUX];
                                }
                                else
                                {
                                    lng_idAlbaranFacturaLinea_TarifasPromociones = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_ID,
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO,
                                                                                                                           mdl_INTERNO_Tabla_Modelo.Objeto_92.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_IDALBARANFACTURALINEA,
                                                                                                                           lng_idAlbaranesFacturasLineas.ToString().Trim(),
                                                                                                                           Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlbaranFacturaLinea_TarifasPromociones > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.Add(str_AUX, lng_idAlbaranFacturaLinea_TarifasPromociones);
                                    }

                                }



                                //si no existe inserto
                                if (lng_idAlbaranFacturaLinea_TarifasPromociones == -1)
                                {
                                    #region idNomenclaturaPrecio
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_104 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_104.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_NomenclaturasPrecios.ContainsKey(str_AUX))
                                        {
                                            lng_idNomenclaturaPrecio = g_dct_ids_MAE_NomenclaturasPrecios[str_AUX];
                                        }
                                        else
                                        {
                                            lng_idNomenclaturaPrecio = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_ID,
                                                                                                     Variables_TraspasoDatos.G_STR_TABLA_MAE_NOMENCLATURASPRECIOS_CAMPO_CODIGO,
                                                                                                     mdl_INTERNO_Tabla_Modelo.Objeto_104.ToString().Trim(),
                                                                                                     Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_idNomenclaturaPrecio > -1)
                                            {
                                                g_dct_ids_MAE_NomenclaturasPrecios.Add(str_AUX, lng_idNomenclaturaPrecio);
                                            }

                                        }


                                        //Si no existe muestro error
                                        if (lng_idNomenclaturaPrecio == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_104.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);


                                            
                                        }
                                    }
                                    #endregion

                                    #region AB_idArticulo
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_109 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_109.ToString().Trim() + "_" + lng_idEmpresa.ToString();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Articulos.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idArticulo = g_dct_ids_MAE_Articulos[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idArticulo = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_109.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_ARTICULOS_CAMPO_IDEMPRESA,
                                                                                                      lng_idEmpresa.ToString(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idArticulo > -1)
                                            {
                                                g_dct_ids_MAE_Articulos.Add(str_AUX, lng_AB_idArticulo);
                                            }

                                        }



                                        //Si no existe muestro error
                                        if (lng_AB_idArticulo == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_109.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);

                                           
                                        }
                                    }
                                    #endregion

                                    #region AB_idEmbalaje
                                    if (mdl_INTERNO_Tabla_Modelo.Objeto_110 != null)
                                    {
                                        //Compruebo si existe el registro en base de datos por el codigo .......................
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_110.ToString().Trim();
                                        //......................................................................................

                                        if (g_dct_ids_MAE_Embalajes.ContainsKey(str_AUX))
                                        {
                                            lng_AB_idEmbalaje = g_dct_ids_MAE_Embalajes[str_AUX];
                                        }
                                        else
                                        {
                                            lng_AB_idEmbalaje = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_ID,
                                                                                                      Variables_TraspasoDatos.G_STR_TABLA_MAE_EMBALAJES_CAMPO_CODIGO,
                                                                                                      mdl_INTERNO_Tabla_Modelo.Objeto_110.ToString().Trim(),
                                                                                                      Variables_TraspasoDatos.G_OBJ_CONEXION);

                                            //Añadir al Diccionario
                                            if (lng_AB_idEmbalaje > -1)
                                            {
                                                g_dct_ids_MAE_Embalajes.Add(str_AUX, lng_AB_idEmbalaje);
                                            }

                                        }



                                        //Si no existe muestro error
                                        if (lng_AB_idEmbalaje == -1)
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_REGISTRO_DELCAMPO(mdl_INTERNO_Tabla_Modelo.Objeto_91.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES,
                                                                                                        mdl_INTERNO_Tabla_Modelo.Objeto_110.ToString().Trim(),
                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                           
                                        }
                                    }
                                    #endregion

                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES +
                                                                  " (" +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_IDALBARANFACTURALINEA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_CODIGO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCRIPCION + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_1 + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_2 + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_3 + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_4 + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTO_5 + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_INCREMENTO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_NUMEROREDONDEO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_TIPO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIOFIJODINAMICO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_PRECIO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_IDNOMENCLATURAPRECIO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESCUENTOMONEDA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_A + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANTIDAD_B + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_PORCENTAJE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDARTICULO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_IDEMBALAJE + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_AB_CANCELADO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_ORDEN + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_MENSAJE_ERROR + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_DESACTIVADO + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_NOAPLICARTARIFA + "," +
                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CAMPO_APLICADAENLINEA +
                                                                  " ) " +
                                                                  " OUTPUT INSERTED.id " +
                                                                  " VALUES " +
                                                                  " ( " +
                                                                             "@idAlbaranFacturaLinea," +
                                                                             "@codigo," +
                                                                             "@descripcion," +
                                                                             "@descuento_1," +
                                                                             "@descuento_2," +
                                                                             "@descuento_3," +
                                                                             "@descuento_4," +
                                                                             "@descuento_5," +
                                                                             "@incremento," +
                                                                             "@numeroRedondeo," +
                                                                             "@tipo," +
                                                                             "@precioFijoDinamico," +
                                                                             "@precio," +
                                                                             "@idNomenclaturaPrecio," +
                                                                             "@descuentoMoneda," +
                                                                             "@AB_Cantidad_A," +
                                                                             "@AB_Cantidad_B," +
                                                                             "@AB_Porcentaje," +
                                                                             "@AB_idArticulo," +
                                                                             "@AB_idEmbalaje," +
                                                                             "@AB_Cancelado," +
                                                                             "@orden," +
                                                                             "@mensaje_Error," +
                                                                             "@desactivado," +
                                                                             "@noAplicarTarifa," +
                                                                             "@aplicadaEnLinea" +
                                                                  " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                        new SqlParameter("@idAlbaranFacturaLinea", lng_idAlbaranesFacturasLineas),
                                        new SqlParameter("@codigo", mdl_INTERNO_Tabla_Modelo.Objeto_92),
                                        new SqlParameter("@descripcion", mdl_INTERNO_Tabla_Modelo.Objeto_93),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_94!= null
                                            ?   new SqlParameter("@descuento_1", mdl_INTERNO_Tabla_Modelo.Objeto_94 )
                                            :   new SqlParameter("@descuento_1",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_95 != null
                                            ?   new SqlParameter("@descuento_2", mdl_INTERNO_Tabla_Modelo.Objeto_95 )
                                            :   new SqlParameter("@descuento_2",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_96 != null
                                            ?   new SqlParameter("@descuento_3", mdl_INTERNO_Tabla_Modelo.Objeto_96 )
                                            :   new SqlParameter("@descuento_3",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_97 != null
                                            ?   new SqlParameter("@descuento_4", mdl_INTERNO_Tabla_Modelo.Objeto_97 )
                                            :   new SqlParameter("@descuento_4",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_98 != null
                                            ?   new SqlParameter("@descuento_5", mdl_INTERNO_Tabla_Modelo.Objeto_98 )
                                            :   new SqlParameter("@descuento_5",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_99 != null
                                            ?   new SqlParameter("@incremento", mdl_INTERNO_Tabla_Modelo.Objeto_99 )
                                            :   new SqlParameter("@incremento",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_100 != null
                                            ?   new SqlParameter("@numeroRedondeo", mdl_INTERNO_Tabla_Modelo.Objeto_100 )
                                            :   new SqlParameter("@numeroRedondeo",  DBNull.Value),
                                        new SqlParameter("@tipo", mdl_INTERNO_Tabla_Modelo.Objeto_101 ),
                                        new SqlParameter("@precioFijoDinamico", mdl_INTERNO_Tabla_Modelo.Objeto_102 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_103 != null
                                            ?   new SqlParameter("@precio", mdl_INTERNO_Tabla_Modelo.Objeto_103 )
                                            :   new SqlParameter("@precio",  DBNull.Value),
                                        lng_idNomenclaturaPrecio > -1
                                            ?   new SqlParameter("@idNomenclaturaPrecio", lng_idNomenclaturaPrecio )
                                            :   new SqlParameter("@idNomenclaturaPrecio",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_105 != null
                                            ?   new SqlParameter("@descuentoMoneda", mdl_INTERNO_Tabla_Modelo.Objeto_105 )
                                            :   new SqlParameter("@descuentoMoneda",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_106!= null
                                            ?   new SqlParameter("@AB_Cantidad_A", mdl_INTERNO_Tabla_Modelo.Objeto_106 )
                                            :   new SqlParameter("@AB_Cantidad_A",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_107 != null
                                            ?   new SqlParameter("@AB_Cantidad_B", mdl_INTERNO_Tabla_Modelo.Objeto_107 )
                                            :   new SqlParameter("@AB_Cantidad_B",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_108 != null
                                            ?   new SqlParameter("@AB_Porcentaje", mdl_INTERNO_Tabla_Modelo.Objeto_108 )
                                            :   new SqlParameter("@AB_Porcentaje",  DBNull.Value),
                                        lng_AB_idArticulo > -1
                                            ?   new SqlParameter("@AB_idArticulo", lng_AB_idArticulo )
                                            :   new SqlParameter("@AB_idArticulo",  DBNull.Value),
                                        lng_AB_idEmbalaje > -1
                                            ?   new SqlParameter("@AB_idEmbalaje", lng_AB_idEmbalaje )
                                            :   new SqlParameter("@AB_idEmbalaje",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_111 != null
                                            ?   new SqlParameter("@AB_Cancelado", mdl_INTERNO_Tabla_Modelo.Objeto_111 )
                                            :   new SqlParameter("@AB_Cancelado",  DBNull.Value),
                                        new SqlParameter("@orden", mdl_INTERNO_Tabla_Modelo.Objeto_112 ),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_113!= null
                                            ?   new SqlParameter("@mensaje_Error", mdl_INTERNO_Tabla_Modelo.Objeto_113 )
                                            :   new SqlParameter("@mensaje_Error",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_114 != null
                                            ?   new SqlParameter("@desactivado", mdl_INTERNO_Tabla_Modelo.Objeto_114 )
                                            :   new SqlParameter("@desactivado",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_115 != null
                                            ?   new SqlParameter("@noAplicarTarifa", mdl_INTERNO_Tabla_Modelo.Objeto_115 )
                                            :   new SqlParameter("@noAplicarTarifa",  DBNull.Value),
                                        mdl_INTERNO_Tabla_Modelo.Objeto_116 != null
                                            ?   new SqlParameter("@aplicadaEnLinea", mdl_INTERNO_Tabla_Modelo.Objeto_116 )
                                            :   new SqlParameter("@aplicadaEnLinea",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    //todo Correcto
                                    else
                                    {
                                        lng_idAlbaranFacturaLinea_TarifasPromociones = mdl_ValorDevuelto_Modelo.Id;

                                        //Añadir al Diccionario
                                        str_AUX = mdl_INTERNO_Tabla_Modelo.Objeto_92.ToString().Trim() + "_" +
                                                    lng_idAlbaranesFacturasLineas.ToString().Trim();

                                        g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromociones.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##################################################################################################
                        #endregion

                        #region Condicionantes
                        //Condicionantes ###########################################################################################
                        if (lng_idAlbaranFacturaLinea_TarifasPromociones > -1)
                        {
                            //Si no tiene el primer registro no relleno condicionantes
                            if (mdl_INTERNO_Tabla_Modelo.Objeto_117 != null)
                            {
                                #region idAlbaranFacturaLineas_TarifasPromociones_Condicionantes
                                str_AUX = lng_idAlbaranFacturaLinea_TarifasPromociones.ToString().Trim();

                                if (g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes.ContainsKey(str_AUX))
                                {
                                    lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes = g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes[str_AUX];
                                }
                                else
                                {
                                    lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes = Funciones_TraspasoDatos.Obtener_Id_Por_Campo(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_ID,
                                                                                                                                            Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDALBARANFACTURALINEATARIFAPROMOCION,
                                                                                                                                            lng_idAlbaranFacturaLinea_TarifasPromociones.ToString().Trim(),
                                                                                                                                            Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    //Añadir al Diccionario
                                    if (lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes > -1)
                                    {
                                        g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes.Add(str_AUX, lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes);
                                    }

                                }
                                #endregion

                                //si no existe inserto
                                if (lng_idAlbaranFacturaLineas_TarifasPromociones_Condicionantes == -1)
                                {
                                    string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES +
                                                                   " (" +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IDALBARANFACTURALINEATARIFAPROMOCION + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_DESDE_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CANTIDAD_HASTA_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_CONDICIONANTE_Y_O + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_DESDE_VALOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_OPERADOR + "," +
                                                                           Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_TARIFASPROMOCIONES_CONDICIONANTES_CAMPO_IMPORTE_HASTA_VALOR +
                                                                   " ) " +
                                                                   " OUTPUT INSERTED.id " +
                                                                   " VALUES " +
                                                                   " ( " +
                                                                          "@idAlbaranFacturaLineaTarifaPromocion," +
                                                                          "@cantidad_Desde_Operador," +
                                                                          "@cantidad_Desde_Valor," +
                                                                          "@cantidad_Hasta_Operador," +
                                                                          "@cantidad_Hasta_Valor," +
                                                                          "@condicionante_Y_O," +
                                                                          "@importe_Desde_Operador," +
                                                                          "@importe_Desde_Valor," +
                                                                          "@importe_Hasta_Operador," +
                                                                          "@importe_Hasta_Valor" +
                                                                   " ) ";

                                    //Parametros
                                    object[] arr_Parametros_Insert = new object[]
                                    {
                                    new SqlParameter("@idAlbaranFacturaLineaTarifaPromocion", lng_idAlbaranFacturaLinea_TarifasPromociones ),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_117!= null
                                        ?   new SqlParameter("@cantidad_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_117 )
                                        :   new SqlParameter("@cantidad_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_118 != null
                                        ?   new SqlParameter("@cantidad_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_118 )
                                        :   new SqlParameter("@cantidad_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_119 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_119 )
                                        :   new SqlParameter("@cantidad_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_120 != null
                                        ?   new SqlParameter("@cantidad_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_120 )
                                        :   new SqlParameter("@cantidad_Hasta_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_121 != null
                                        ?   new SqlParameter("@condicionante_Y_O", mdl_INTERNO_Tabla_Modelo.Objeto_121 )
                                        :   new SqlParameter("@condicionante_Y_O",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_122 != null
                                        ?   new SqlParameter("@importe_Desde_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_122 )
                                        :   new SqlParameter("@importe_Desde_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_123 != null
                                        ?   new SqlParameter("@importe_Desde_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_123 )
                                        :   new SqlParameter("@importe_Desde_Valor",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_124!= null
                                        ?   new SqlParameter("@importe_Hasta_Operador", mdl_INTERNO_Tabla_Modelo.Objeto_124 )
                                        :   new SqlParameter("@importe_Hasta_Operador",  DBNull.Value),
                                    mdl_INTERNO_Tabla_Modelo.Objeto_125 != null
                                        ?   new SqlParameter("@importe_Hasta_Valor", mdl_INTERNO_Tabla_Modelo.Objeto_125 )
                                        :   new SqlParameter("@importe_Hasta_Valor",  DBNull.Value)
                                    };

                                    //Llamamos a la funcion de insertar
                                    mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                    if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_NOPUDO_INSERTAR_REGISTRO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                                                             mdl_INTERNO_Tabla_Modelo.NumeroLinea.ToString().Trim(),
                                                                                                                                             mdl_ValorDevuelto_Modelo.Mensaje),
                                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                "Nº linea:" + int_Contador_Linea_Excel);
                                    }
                                    else
                                    {
                                        //Añadir al Diccionario
                                        str_AUX = lng_idAlbaranFacturaLinea_TarifasPromociones.ToString().Trim();

                                        g_dct_ids_VTA_AlbaranesFacturasLineasTarifasPromocionesCondicionantes.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                    }
                                }
                            }
                        }
                        //##############################################################################################################
                        #endregion

                        #endregion

                        int_Contador_Linea_Excel += 1;

                    }

                    #region ALBARANES TOTALES
                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idAlbaranesCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_TOTAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idAlbaranCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoFinalAlbaran_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total" +
                                                                      " ) ";



                        //####Actualizo la barra de progreso secundaria ##
                        ((BackgroundWorker)sender).ReportProgress(2, "Actualizando resumen albaranes ...");
                        ((BackgroundWorker)sender).ReportProgress(4, lst_idAlbaranesCabecera_Insertados.Count);
                        //################################################

                        foreach (long lng_idAlbaranCabecera_AUX in lst_idAlbaranesCabecera_Insertados)
                        {
                            //Para incrementar en la barra de progreso secundaria
                            ((BackgroundWorker)sender).ReportProgress(3, "");

                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDALBARANCABECERA,
                                                                                                                                                                                lng_idAlbaranCabecera_AUX,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULOCOMODIN,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID,
                                                                                                                                lng_idAlbaranCabecera_AUX,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDCLIENTE,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_DESCUENTOFINALALBARAN,
                                                                                                                                "",
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_RECARGO,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_CLIENTE_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                        new SqlParameter("@idAlbaranCabecera", lng_idAlbaranCabecera_AUX),
                                                        new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value),
                                                        new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value),
                                                        new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                        new SqlParameter("@descuentoFinalAlbaran_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado),
                                                        new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                        new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje),
                                                        new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                        new SqlParameter("@recargo_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje),
                                                        new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                        new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA,
                                                                                                                                               lng_idAlbaranCabecera_AUX.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idAlbaranCabecera_AUX.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() + "_" +
                                                              mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim();

                                                    g_dct_ids_VTA_AlbaranesCabecerasResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                   lng_idAlbaranCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                   lng_idAlbaranCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA,
                                                                                                                                                        lng_idAlbaranCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                        lng_idAlbaranCabecera_AUX.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                        "");

                            }
                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes albaranes ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorAlbaranCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorAlbaranCabecera != null && lst_TotalResumen_PorAlbaranCabecera.Count > 0)
                    {
                        ((BackgroundWorker)sender).ReportProgress(4, lst_TotalResumen_PorAlbaranCabecera.Count);

                        long lng_idAlbaranCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorAlbaranCabecera)
                        {
                            //Para incrementar en la barra de progreso secundaria
                            ((BackgroundWorker)sender).ReportProgress(3, "");

                            try
                            {
                                lng_idAlbaranCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_DESCUENTOFINALALNARAN + "=@total_descuentoFinalAlbaran," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_TOTAL + "=@total" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoFinalAlbaran", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoFinalAlbaran",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                       mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total",  DBNull.Value),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA,
                                                                                                                                    lng_idAlbaranCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESCABECERA_RESUMEN_CAMPO_IDALBARANCABECERA,
                                                                                                lng_idAlbaranCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                "");
                            }

                        }
                    }

                    #endregion
                    #endregion

                    #region FACTURAS TOTALES
                    #region Grabar el Resumen de las Cabecera insertadas
                    if (lst_idFacturasCabecera_Insertados.Count > 0)
                    {
                        List<INTERNO_GEN_ImpuestosTipos_Listado_Modelo> lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo = Datos_Generales.GEN_ImpuestosTipos_Obtener_Listado();
                        GEN_ImpuestosCabecera mdl_GEN_ImpuestosCabecera = null;
                        VentasCompras_Impuestos_Calculos obj_VentasCompras_Impuestos_Calculos = null;
                        VentasCompras_Retenciones_Calculos obj_VentasCompras_Retenciones_Calculos = null;
                        INTERNO_DatosCabecera_CalculoResumen_Modelo mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = null;

                        //Listado de Retenciones
                        List<GEN_Retenciones> lst_GEN_Retenciones = Datos_Generales.GEN_Retenciones_Obtener();
                        List<INTERNO_GEN_RetencionesTipos_Listado_Modelo> lst_INTERNO_GEN_RetencionesTipos_Listado_Modelo = Datos_Generales.GEN_RetencionesTipos_Obtener_Listado();

                        string str_SQL_Insertar = " INSERT INTO " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN +
                                                                      " (" +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDIMPUESTOLINEA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_BRUTO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_PORCENTAJE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_BASE + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDALBRANCABECERA + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALALBARAN_VALOR + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDRETENCIONTIPO + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDRETENCION + "," +
                                                                              Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_TOTALFINAL +
                                                                      " ) " +
                                                                      " OUTPUT INSERTED.id " +
                                                                      " VALUES " +
                                                                      " ( " +
                                                                            "@idFacturaCabecera," +
                                                                            "@idImpuestoTipo," +
                                                                            "@idImpuestoLinea," +
                                                                            "@bruto," +
                                                                            "@descuentoProntoPago_Valor," +
                                                                            "@descuentoFinalFactura_Valor," +
                                                                            "@baseImponible," +
                                                                            "@impuesto_Porcentaje," +
                                                                            "@impuesto_Valor," +
                                                                            "@recargo_Porcentaje," +
                                                                            "@recargo_Valor," +
                                                                            "@total," +
                                                                            "@retencion_Porcentaje," +
                                                                            "@retencion_Valor," +
                                                                            "@retencion_Base," +
                                                                            "@idAlbaranCabecera," +
                                                                            "@descuentoFinalAlbaran," +
                                                                            "@descuentoFinalAlbaran_Valor," +
                                                                            "@idRetencionTipo," +
                                                                            "@idRetencion," +
                                                                            "@total_Final" +
                                                                      " ) ";

                        //####Actualizo la barra de progreso secundaria ##
                        ((BackgroundWorker)sender).ReportProgress(2, "Actualizando resumen facturas ...");
                        ((BackgroundWorker)sender).ReportProgress(4, lst_idFacturasCabecera_Insertados.Count);
                        //################################################

                        foreach (long lng_idFacturaCabecera_AUX in lst_idFacturasCabecera_Insertados)
                        {

                            //Para incrementar en la barra de progreso secundaria
                            ((BackgroundWorker)sender).ReportProgress(3, "");

                            List<INTERNO_VentasCompras_Calculo_Lineas_Modelo> lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA,
                                                                                                                                                                                lng_idFacturaCabecera_AUX,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULOCOMODIN,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                            if (lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo != null && lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo.Count > 0)
                            {
                                //Buscar Datos de la cabebecera
                                mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo = Funciones_TraspasoDatos.Obtener_DatosCabecera(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID,
                                                                                                                                lng_idFacturaCabecera_AUX,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDCLIENTE,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDIMPUESTOCABECERA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_FECHA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_IDEMPRESA,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_DESCUENTOPRONTOPAGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_DESCUENTOFINALFACTURA,
                                                                                                                                "",
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_RECARGO,
                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_APLICARRETENCION,
                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo != null)
                                {


                                    //Buscar el Impuesto Cabecera
                                    mdl_GEN_ImpuestosCabecera = Datos_Generales.GEN_ImpuestosCabecera_Obtener_Modelo_Por_Id(mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdImpuestoCabecera);

                                    //Instanciar la clase de Calculos
                                    obj_VentasCompras_Impuestos_Calculos = new VentasCompras_Impuestos_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_CLIENTE_CODIGO,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                  mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                    INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES = obj_VentasCompras_Impuestos_Calculos.Calcular_ImportesImpuestos(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                      lst_INTERNO_GEN_ImpuestosTipos_Listado_Modelo,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      lst_INTERNO_VentasCompras_Calculo_Lineas_Modelo,
                                                                                                                                                                                                      null,
                                                                                                                                                                                                      mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                    if (mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.TodoCorrecto)
                                    {
                                        List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTEIMPUESTOS_TOTALES.Objeto;
                                        if (lst_INTERNO_ImportesImpuestos_Modelo != null &&
                                            lst_INTERNO_ImportesImpuestos_Modelo.Count > 0)
                                        {

                                            foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo)
                                            {

                                                //Parametros
                                                object[] arr_Parametros_Insert = new object[]
                                                {
                                                    new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera_AUX),
                                                       (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo!=null ? new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value) : new SqlParameter("@idImpuestoTipo",DBNull.Value)),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea!=null ? new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value) : new SqlParameter("@idImpuestoLinea",DBNull.Value)),
                                                    new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                    new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                    new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                    new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                    new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje != null ? mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje.Value : 0m),
                                                    new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                    new SqlParameter("@recargo_Porcentaje",mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje != null ? mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje.Value : 0m),
                                                    new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                    new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total),
                                                    (mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Porcentaje!=null ? new SqlParameter("@retencion_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Porcentaje.Value) : new SqlParameter("@retencion_Porcentaje",DBNull.Value)),
                                                    new SqlParameter("@retencion_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Calculado),
                                                    new SqlParameter("@retencion_Base", mdl_INTERNO_ImportesImpuestos_Modelo.BaseRetencion),
                                                    (mdl_INTERNO_ImportesImpuestos_Modelo.IdAlbaranCabecera!=null ? new SqlParameter("@idAlbaranCabecera", mdl_INTERNO_ImportesImpuestos_Modelo.IdAlbaranCabecera.Value) : new SqlParameter("@idAlbaranCabecera",DBNull.Value)),
                                                    (mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal!=null ? new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal.Value) : new SqlParameter("@descuentoFinalAlbaran",DBNull.Value)),
                                                    new SqlParameter("@descuentoFinalAlbaran_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado),
                                                    (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo!=null ? new SqlParameter("@idRetencionTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo.Value) : new SqlParameter("@idRetencionTipo",DBNull.Value)),
                                                    (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion!=null ? new SqlParameter("@idRetencion", mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion.Value) : new SqlParameter("@idRetencion",DBNull.Value)),
                                                    new SqlParameter("@total_Final", mdl_INTERNO_ImportesImpuestos_Modelo.Total_Final)
                                                };

                                                //Llamamos a la funcion de insertar
                                                mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                {
                                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                               lng_idFacturaCabecera_AUX.ToString(),
                                                                                                                                               Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                               mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                    "Nº linea:" + int_Contador_Linea_Excel);
                                                }
                                                else
                                                {
                                                    //Añadir al Diccionario
                                                    str_AUX = lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                       (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() : "-1") + "_" +
                                                                       (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim() : "-1") + "_" +
                                                                       (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion.Value.ToString().Trim() : "-1") + "_" +
                                                                       (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo.Value.ToString().Trim() : "-1");

                                                    g_dct_ids_VTA_FacturasCabecerasResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                }
                                            }

                                            #region Retenciones
                                            if (mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Retencion)
                                            {
                                                obj_VentasCompras_Retenciones_Calculos = new VentasCompras_Retenciones_Calculos(Variables.G_INT_TIPOCLIENTEPROVEEDOR_CLIENTE_CODIGO,
                                                                                                                                              mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdClienteProveedor,
                                                                                                                                              mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Fecha,
                                                                                                                                              mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.IdEmpresa);

                                                //Lineas
                                                List<INTERNO_VentasCompras_Calculos_Lineas_Retenciones_Modelo> lst_INTERNO_VentasCompras_Calculos_Lineas_Retenciones_Modelo = Funciones_TraspasoDatos.Obtener_Calculo_Lineas(Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDFACTURACABECERA,
                                                                                                                                                                                lng_idFacturaCabecera_AUX,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDARTICULOCOMODIN,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDIMPUESTOTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IMPORTE,
                                                                                                                                                                                 Variables_TraspasoDatos.G_STR_TABLA_VTA_ALBARANESFACTURASLINEAS_CAMPO_IDRETENCIONTIPO,
                                                                                                                                                                                Variables_TraspasoDatos.G_OBJ_CONEXION);



                                                //Calculo
                                                INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTERETENCIONES_TOTALES = obj_VentasCompras_Retenciones_Calculos.Calcular_ImportesRetenciones(mdl_GEN_ImpuestosCabecera,
                                                                                                                                                                                                                         lst_GEN_Retenciones,
                                                                                                                                                                                                                         lst_INTERNO_GEN_RetencionesTipos_Listado_Modelo,
                                                                                                                                                                                                                         mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_1,
                                                                                                                                                                                                                         mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.Descuento_2,
                                                                                                                                                                                                                         lst_INTERNO_VentasCompras_Calculos_Lineas_Retenciones_Modelo,
                                                                                                                                                                                                                         mdl_INTERNO_DatosCabecera_CalculoResumen_Modelo.RecargoEquivalencia);

                                                List<INTERNO_ImportesImpuestos_Modelo> lst_INTERNO_ImportesImpuestos_Modelo_RETENCIONES = (List<INTERNO_ImportesImpuestos_Modelo>)mdl_INTERNO_ValorDevuelto_Modelo_CALCULO_IMPORTERETENCIONES_TOTALES.Objeto;
                                                if (lst_INTERNO_ImportesImpuestos_Modelo_RETENCIONES != null &&
                                                    lst_INTERNO_ImportesImpuestos_Modelo_RETENCIONES.Count > 0)
                                                {

                                                    foreach (INTERNO_ImportesImpuestos_Modelo mdl_INTERNO_ImportesImpuestos_Modelo in lst_INTERNO_ImportesImpuestos_Modelo_RETENCIONES)
                                                    {

                                                        //Parametros
                                                        object[] arr_Parametros_Insert = new object[]
                                                        {
                                                            new SqlParameter("@idFacturaCabecera", lng_idFacturaCabecera_AUX),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo!=null ? new SqlParameter("@idImpuestoTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value) : new SqlParameter("@idImpuestoTipo",DBNull.Value)),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea!=null ? new SqlParameter("@idImpuestoLinea", mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value) : new SqlParameter("@idImpuestoLinea",DBNull.Value)),
                                                            new SqlParameter("@bruto", mdl_INTERNO_ImportesImpuestos_Modelo.Bruto),
                                                            new SqlParameter("@descuentoProntoPago_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado),
                                                            new SqlParameter("@descuentoFinalFactura_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado),
                                                            new SqlParameter("@baseImponible", mdl_INTERNO_ImportesImpuestos_Modelo.BaseImponible),
                                                            new SqlParameter("@impuesto_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje != null ? mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje.Value : 0m),
                                                            new SqlParameter("@impuesto_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado),
                                                            new SqlParameter("@recargo_Porcentaje",mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje != null ? mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje.Value : 0m),
                                                            new SqlParameter("@recargo_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado),
                                                            new SqlParameter("@total", mdl_INTERNO_ImportesImpuestos_Modelo.Total),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Porcentaje!=null ? new SqlParameter("@retencion_Porcentaje", mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Porcentaje.Value) : new SqlParameter("@retencion_Porcentaje",DBNull.Value)),
                                                            new SqlParameter("@retencion_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.Retencion_Calculado),
                                                            new SqlParameter("@retencion_Base", mdl_INTERNO_ImportesImpuestos_Modelo.BaseRetencion),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdAlbaranCabecera!=null ? new SqlParameter("@idAlbaranCabecera", mdl_INTERNO_ImportesImpuestos_Modelo.IdAlbaranCabecera.Value) : new SqlParameter("@idAlbaranCabecera",DBNull.Value)),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal!=null ? new SqlParameter("@descuentoFinalAlbaran", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal.Value) : new SqlParameter("@descuentoFinalAlbaran",DBNull.Value)),
                                                            new SqlParameter("@descuentoFinalAlbaran_Valor", mdl_INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo!=null ? new SqlParameter("@idRetencionTipo", mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo.Value) : new SqlParameter("@idRetencionTipo",DBNull.Value)),
                                                            (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion!=null ? new SqlParameter("@idRetencion", mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion.Value) : new SqlParameter("@idRetencion",DBNull.Value)),
                                                            new SqlParameter("@total_Final", mdl_INTERNO_ImportesImpuestos_Modelo.Total_Final)
                                                        };

                                                        //Llamamos a la funcion de insertar
                                                        mdl_ValorDevuelto_Modelo = Insertar(str_SQL_Insertar, arr_Parametros_Insert, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                                        if (mdl_ValorDevuelto_Modelo.TodoCorrecto == false)
                                                        {
                                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_REGISTRO(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                                       lng_idFacturaCabecera_AUX.ToString(),
                                                                                                                                                       Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                                       mdl_ValorDevuelto_Modelo.Mensaje),
                                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                            "Nº linea:" + int_Contador_Linea_Excel);
                                                        }
                                                        else
                                                        {
                                                            //Añadir al Diccionario
                                                            str_AUX = lng_idFacturaCabecera_AUX.ToString().Trim() + "_" +
                                                                      (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo.Value.ToString().Trim() : "-1") + "_" +
                                                                      (mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea.Value.ToString().Trim() : "-1") + "_" +
                                                                      (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencion.Value.ToString().Trim() : "-1") + "_" +
                                                                      (mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo != null ? mdl_INTERNO_ImportesImpuestos_Modelo.IdRetencionTipo.Value.ToString().Trim() : "-1");

                                                            g_dct_ids_VTA_FacturasCabecerasResumen.Add(str_AUX, mdl_ValorDevuelto_Modelo.Id);
                                                        }
                                                    }
                                                }
                                            }
                                            #endregion
                                        }
                                        else
                                        {
                                            ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                   lng_idFacturaCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                        }
                                    }
                                    else
                                    {
                                        ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_ERROR_RESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                   lng_idFacturaCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                    }
                                }
                                else
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                            Mensajes_TraspasoDatos.G_STR_MENSAJES_NO_EXISTE_DATOSCABECERA_PARARESUMEN(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                                        Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                                        lng_idFacturaCabecera_AUX.ToString()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                            "");
                                }
                            }
                            else
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                        Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_INSERTAR_RESUMEN_NOENCONTROLINEAS(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                        lng_idFacturaCabecera_AUX.ToString()),
                                                        nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                        "");

                            }




                        }
                    }
                    #endregion

                    #region Actualizar importes de la cabecera
                    //Actualizar los totales de la cabecera segun el resumen
                    //####Actualizo la barra de progreso secundaria ##
                    //Para incrementar en la barra de progreso secundaria
                    ((BackgroundWorker)sender).ReportProgress(2, "Actualizando importes facturas ...");
                    //################################################

                    List<INTERNO_Totales_Modelo> lst_TotalResumen_PorFacturaCabecera = Funciones_TraspasoDatos.Obtener_ResumenTotal(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_BRUTO,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOPRONTOPAGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_DESCUENTOFINALFACTURA_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_BASEIMPONIBLE,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IMPUESTO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RECARGO_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_TOTAL,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_RETENCION_VALOR,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_TOTALFINAL,
                                                                                                                                    "",
                                                                                                                                    Variables_TraspasoDatos.G_OBJ_CONEXION);
                    if (lst_TotalResumen_PorFacturaCabecera != null && lst_TotalResumen_PorFacturaCabecera.Count > 0)
                    {
                        ((BackgroundWorker)sender).ReportProgress(4, lst_TotalResumen_PorFacturaCabecera.Count);

                        long lng_idPedidoCompraCabecera_Resumen = -1;
                        foreach (INTERNO_Totales_Modelo mdl_INTERNO_Totales_Modelo in lst_TotalResumen_PorFacturaCabecera)
                        {
                            //Para incrementar en la barra de progreso secundaria
                            ((BackgroundWorker)sender).ReportProgress(3, "");

                            try
                            {
                                lng_idPedidoCompraCabecera_Resumen = mdl_INTERNO_Totales_Modelo.IDAgrupado;

                                string str_SQL_Actualizar = " UPDATE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA +
                                                                " set " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_BRUTO + "=@total_bruto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOPROMTOPAGO + "=@total_descuentoProntoPago," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_DESCUENTOFINALFACTURA + "=@total_descuentoFinalFactura," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_BASEIMPONIBLE + "=@total_baseImponible," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_IMPUESTO + "=@total_impuesto," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_RECARGO + "=@total_recargo, " +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL + "=@total," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_RETENCION + "=@total_retencion," +
                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_TOTAL_FINAL + "=@total_Final" +
                                                            " WHERE " + Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_CAMPO_ID + "=@id";

                                //Parametros
                                object[] arr_Parametros_Actualizar = new object[]
                                {
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_1 != null
                                        ?   new SqlParameter("@total_bruto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_1)
                                        :   new SqlParameter("@total_bruto",  DBNull.Value),
                                     mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 != null
                                        ?   new SqlParameter("@total_descuentoProntoPago", mdl_INTERNO_Totales_Modelo.Campo_Sumado_2 )
                                        :   new SqlParameter("@total_descuentoProntoPago",  DBNull.Value),
                                      mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 != null
                                        ?   new SqlParameter("@total_descuentoFinalFactura", mdl_INTERNO_Totales_Modelo.Campo_Sumado_3 )
                                        :   new SqlParameter("@total_descuentoFinalFactura",  DBNull.Value),
                                        mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 != null
                                        ?   new SqlParameter("@total_baseImponible", mdl_INTERNO_Totales_Modelo.Campo_Sumado_4 )
                                        :   new SqlParameter("@total_baseImponible",  DBNull.Value),
                                       mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 != null
                                        ?   new SqlParameter("@total_impuesto", mdl_INTERNO_Totales_Modelo.Campo_Sumado_5 )
                                        :   new SqlParameter("@total_impuesto",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 != null
                                        ?   new SqlParameter("@total_recargo", mdl_INTERNO_Totales_Modelo.Campo_Sumado_6 )
                                        :   new SqlParameter("@total_recargo",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 != null
                                        ?   new SqlParameter("@total", mdl_INTERNO_Totales_Modelo.Campo_Sumado_7 )
                                        :   new SqlParameter("@total",  "0.00"),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 != null
                                        ?   new SqlParameter("@total_retencion", mdl_INTERNO_Totales_Modelo.Campo_Sumado_8 )
                                        :   new SqlParameter("@total_retencion",  DBNull.Value),
                                    mdl_INTERNO_Totales_Modelo.Campo_Sumado_9 != null
                                        ?   new SqlParameter("@total_Final", mdl_INTERNO_Totales_Modelo.Campo_Sumado_9 )
                                        :   new SqlParameter("@total_Final",  "0.00"),
                                    new SqlParameter("@id",  mdl_INTERNO_Totales_Modelo.IDAgrupado)
                                };

                                //Llamamos a la funcion de Actualizar
                                INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_Update = Actualizar(str_SQL_Actualizar, arr_Parametros_Actualizar, Variables_TraspasoDatos.G_OBJ_CONEXION);

                                if (mdl_ValorDevuelto_Modelo_Update.TodoCorrecto == false)
                                {
                                    ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                                                    Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                                                    Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                                                    lng_idPedidoCompraCabecera_Resumen.ToString(),
                                                                                                                                    mdl_ValorDevuelto_Modelo_Update.Mensaje),
                                                                                                                                    nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                                                    "");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final,
                                Mensajes_TraspasoDatos.G_STR_MENSAJES_NOPUDO_ACTUALIZAR_TOTALES(Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA,
                                                                                                Variables_TraspasoDatos.G_STR_TABLA_VTA_FACTURASCABECERA_RESUMEN_CAMPO_IDFACTURACABECERA,
                                                                                                lng_idPedidoCompraCabecera_Resumen.ToString(),
                                                                                                ex.Message),
                                                                                                nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas),
                                                                                                "");
                            }

                        }
                    }

                    #endregion
                    #endregion

                }
            }
            catch (NullReferenceException)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                ErroresLog.Guardar_Log(str_Ruta_FichaeroLOG_Final, Mensajes_TraspasoDatos.G_STR_MENSAJES_ERROR_GENERAL_TRASPASO(_mdl_INTERNO_Identificador_Descripcion_Modelo_Principal.Identificador,
                                                                                                             _mdl_INTERNO_Identificador_Descripcion_Modelo_Tabla.Descripcion,
                                                                                                             str_Fila,
                                                                                                             "",
                                                                                                             Mensajes_TraspasoDatos.G_STR_MENSAJES_CAMPOOBLIGATORIO_NULO()),
                                                                            nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas), "");
            }
            catch (Exception ex)
            {
                mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
                new Control_Errores("", ex, nameof(Funciones_Insertar) + "/" + nameof(Insertar_AlbaranesFacturas), true);
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion


    }
}
