Exemplo n.º 1
0
        /// <summary>
        /// Carga una hoja de excel y retorna un datatable con la información de la misma
        /// </summary>
        /// <param name="rutaArchivo"></param>
        /// <param name="nombreHoja"></param>
        /// <returns></returns>
        public EDCargueMasivo CargarArchivoAusencias(EDCargueMasivo cargue)
        {
            RegistraLog    registraLog = new RegistraLog();
            EDCargueMasivo edCargue    = new EDCargueMasivo();

            try
            {
                using (ExcelPackage package = new ExcelPackage(new FileInfo(cargue.path)))
                {
                    var  sheet        = package.Workbook.Worksheets[1];
                    bool validaEstruc = ValidarNombreColumnas(sheet);
                    if (validaEstruc)
                    {
                        edCargue = ProcesarCargue(sheet, cargue);
                    }
                    else
                    {
                        edCargue.Message = "El cargue fallo: Los nombres de las columnas de la plantilla fueron modificados.";
                    }

                    return(edCargue);
                }
            }
            catch (Exception ex)
            {
                registraLog.RegistrarError(typeof(LNCargue), string.Format("Error en el método CargarArchivoAusencias {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                edCargue.Message = "El proceso de cargue fallo: La estructura del archivo no es valida";
                return(edCargue);
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage ObtenerReporteExcel(EDCargueMasivo cargue)
        {
            HttpResponseMessage response = null;

            try
            {
                LNCargue logica  = new LNCargue();
                var      archivo = logica.CargarPlantillaCargueAusentismo(cargue);
                if (archivo != null)
                {
                    response = Request.CreateResponse <EDCargueMasivo>(HttpStatusCode.Created, archivo);
                    return(response);
                }
                else
                {
                    response = Request.CreateResponse(HttpStatusCode.ExpectationFailed);
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response = Request.CreateResponse(HttpStatusCode.InternalServerError);
                return(response);
            }
        }
Exemplo n.º 3
0
        public EDCargueMasivo CargarPlantillaCargueAusentismo(EDCargueMasivo cargue)
        {
            RegistraLog    registraLog = new RegistraLog();
            EDCargueMasivo edCargue    = new EDCargueMasivo();

            try
            {
                edCargue = CargarArchivoAusencias(cargue);
            }
            catch (Exception ex)
            {
                registraLog.RegistrarError(typeof(LNCargue), string.Format("Error en el método CargarPlantillaCargueAusentismo  {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                edCargue.Message = "El proceso de cargue fallo: la estructura del archivo no es valida";
                return(edCargue);
            }

            return(edCargue);
        }
Exemplo n.º 4
0
        public EDCargueMasivo InsertarAusenciasCargueMasivo(List <EDAusencia> AusenciasMasivo)
        {
            bool result = true;
            List <EDAusencia> Ausenciastmp = new List <EDAusencia>();
            EDCargueMasivo    edCargue     = new EDCargueMasivo();

            edCargue.Message = string.Empty;
            int contador = 1;

            using (SG_SSTContext context = new SG_SSTContext())
            {
                using (var Transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        int idpadre = 0;
                        foreach (EDAusencia ausencia in AusenciasMasivo)
                        {
                            contador++;
                            Ausencia nuevaAusencia = new Ausencia();

                            bool puedeCrear = VerificarCrucesEnCargueMasivo(ausencia, Ausenciastmp);
                            if (puedeCrear)
                            {
                                if (ausencia.consecutivoPadre > 0)
                                {
                                    nuevaAusencia.FK_Id_Ausencias_Padre = idpadre;
                                    nuevaAusencia.Documento_Persona     = ausencia.Documento;
                                    nuevaAusencia.NitEmpresa            = ausencia.IdEmpresa;
                                    nuevaAusencia.FK_Id_EmpresaUsuaria  = ausencia.IdEmpresaUsuaria;
                                    nuevaAusencia.FK_Id_Departamento    = ausencia.idDepartamento;
                                    nuevaAusencia.FK_Id_Municipio       = ausencia.idMunicipio;
                                    nuevaAusencia.FK_Id_Contingencia    = ausencia.IdContingencia;
                                    nuevaAusencia.FK_Id_Diagnostico     = ausencia.IdDiagnostico;
                                    nuevaAusencia.FK_Id_Sede            = ausencia.IdSede;
                                    nuevaAusencia.FK_Id_Proceso         = ausencia.IdProceso;
                                    nuevaAusencia.FechaInicio           = ausencia.FechaInicio;
                                    nuevaAusencia.Fecha_Fin             = ausencia.FechaFin;
                                    nuevaAusencia.DiasAusencia          = ausencia.DiasAusencia;
                                    nuevaAusencia.Costo = ausencia.Costo;
                                    nuevaAusencia.Factor_Prestacional = ausencia.FactorPrestacional;
                                    nuevaAusencia.Observaciones       = ausencia.Observaciones;
                                    nuevaAusencia.FK_Id_Ocupacion     = ausencia.IdOcupacion;
                                    nuevaAusencia.Sexo             = ausencia.Sexo;
                                    nuevaAusencia.Tipo_Vinculacion = ausencia.TipoVinculacion;
                                    nuevaAusencia.Edad             = ausencia.Edad;
                                    nuevaAusencia.Eps = ausencia.Eps;
                                    nuevaAusencia.FechaModificacion = DateTime.Now;
                                    nuevaAusencia.FechaRegistro     = DateTime.Now;
                                    nuevaAusencia.NombrePersona     = ausencia.NombrePersona;

                                    context.Tbl_Ausencias.Add(nuevaAusencia);
                                    context.SaveChanges();
                                    Ausenciastmp.Add(ausencia);
                                }
                                else
                                {
                                    nuevaAusencia.Documento_Persona    = ausencia.Documento;
                                    nuevaAusencia.NitEmpresa           = ausencia.IdEmpresa;
                                    nuevaAusencia.FK_Id_EmpresaUsuaria = ausencia.IdEmpresaUsuaria;
                                    nuevaAusencia.FK_Id_Departamento   = ausencia.idDepartamento;
                                    nuevaAusencia.FK_Id_Municipio      = ausencia.idMunicipio;
                                    nuevaAusencia.FK_Id_Contingencia   = ausencia.IdContingencia;
                                    nuevaAusencia.FK_Id_Diagnostico    = ausencia.IdDiagnostico;
                                    nuevaAusencia.FK_Id_Sede           = ausencia.IdSede;
                                    nuevaAusencia.FK_Id_Proceso        = ausencia.IdProceso;
                                    nuevaAusencia.FechaInicio          = ausencia.FechaInicio;
                                    nuevaAusencia.Fecha_Fin            = ausencia.FechaFin;
                                    nuevaAusencia.DiasAusencia         = ausencia.DiasAusencia;
                                    nuevaAusencia.Costo = ausencia.Costo;
                                    nuevaAusencia.Factor_Prestacional = ausencia.FactorPrestacional;
                                    nuevaAusencia.Observaciones       = ausencia.Observaciones;
                                    nuevaAusencia.FK_Id_Ocupacion     = ausencia.IdOcupacion;
                                    nuevaAusencia.Sexo             = ausencia.Sexo;
                                    nuevaAusencia.Tipo_Vinculacion = ausencia.TipoVinculacion;
                                    nuevaAusencia.Edad             = ausencia.Edad;
                                    nuevaAusencia.Eps = ausencia.Eps;
                                    nuevaAusencia.FechaModificacion = DateTime.Now;
                                    nuevaAusencia.FechaRegistro     = DateTime.Now;
                                    nuevaAusencia.NombrePersona     = ausencia.NombrePersona;

                                    context.Tbl_Ausencias.Add(nuevaAusencia);
                                    context.SaveChanges();
                                    idpadre = nuevaAusencia.Pk_Id_Ausencias;
                                    Ausenciastmp.Add(ausencia);
                                }
                            }
                            else
                            {
                                Transaction.Rollback();
                                edCargue.Message = "Proceso fallido, las fechas del registro de la fila " + contador + " se cruzan con registros ya reportados. ";
                                result           = false;
                                break;
                            }
                        }
                        if (result)
                        {
                            Transaction.Commit();
                            edCargue.Message = "OK";
                        }
                    }
                    catch
                    {
                        Transaction.Rollback();
                        edCargue.Message = "El proceso de cargue fallo, comuniquese con el administrador del sistema";
                    }
                }
            }

            return(edCargue);
        }
Exemplo n.º 5
0
        public ActionResult CargueMasivo(object form_data)
        {
            var objEvaluacion = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current);

            if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
            {
                var pic = System.Web.HttpContext.Current.Request.Files["cargarArchivo"];
                var idempresausuaria    = System.Web.HttpContext.Current.Request.Params["IdEmpresaUsuaria"];
                HttpPostedFileBase file = new HttpPostedFileWrapper(pic);
                if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx"))
                {
                    var    fileName = Path.GetFileName(file.FileName);
                    string path     = string.Empty;
                    if (int.Parse(idempresausuaria) > 0)
                    {
                        path = Path.Combine(rutaPlantillaAusentismo, objEvaluacion.NitEmpresa, idempresausuaria);
                    }
                    else
                    {
                        path = Path.Combine(rutaPlantillaAusentismo, objEvaluacion.NitEmpresa);
                    }

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    path = Path.Combine(path, fileName);
                    if (System.IO.File.Exists(path))
                    {
                        System.IO.File.Delete(path);
                    }
                    file.SaveAs(path);

                    EDCargueMasivo cargue = new EDCargueMasivo();
                    cargue.Id_Empresa_Usuaria = int.Parse(idempresausuaria);
                    cargue.path       = path;
                    cargue.NitEmpresa = objEvaluacion.NitEmpresa;

                    ServiceClient.EliminarParametros();
                    var result = ServiceClient.RealizarPeticionesPostJsonRestFul <EDCargueMasivo>(urlServicioPlanificacion, CapacidadCargarplatillaausentismo, cargue);
                    if (result != null)
                    {
                        if (result.Message.Equals("OK"))
                        {
                            return(Json(new { Data = "El registro del ausentismo laboral fue cargado satisfactoriamente.", Mensaje = "Success" }));
                        }
                        else
                        {
                            return(Json(new { Data = result.Message, Mensaje = "ERROR" }));
                        }
                    }
                    else
                    {
                        return(Json(new { Data = "Se presento un error de comunicacion con el servidor; por favor intente nuevamente o comuniquese con el administrador del sistema.", Mensaje = "ERROR" }));
                    }
                }
                else
                {
                    return(Json(new { Data = "Debe seleccionar un archivo en formato excel con extencion .xls o .xlsx", Mensaje = "ERROR" }));
                }
            }
            else
            {
                return(Json(new { Data = "Se presento un error en la carga del archivo; por favor intente nuevamente o comuniquese con el administrador del sistema.", Mensaje = "ERROR" }));
            }
        }
Exemplo n.º 6
0
        private EDCargueMasivo ProcesarCargue(ExcelWorksheet sheet, EDCargueMasivo cargue)
        {
            EDCargueMasivo    edCargue  = new EDCargueMasivo();
            List <EDAusencia> Ausencias = new List <EDAusencia>();
            LNAusencia        use       = new LNAusencia();
            bool tieneDatos             = false;
            bool result = false;

            int      consecutivo;
            int      conscutivopadre;
            int      CodTipoDocumento;
            string   Nit_Empresa;
            int      Cod_Departamento;
            int      Cod_Municipio;
            int      Cod_Sede;
            int      Cod_Tipo_Documento;
            string   Num_Documento;
            string   Nombre_Trabajador;
            int      Edad;
            string   Genero;
            int      Cod_Ocupacion;
            string   Nombre_EPS;
            string   Tipo_Vinculacion;
            int      Salario_Base;
            int      Cod_Contingencia;
            int      Cod_Area;
            DateTime Fecha_Inicio;
            DateTime Fecha_Fin;
            int      Cod_Diagnostico;
            decimal  Factor_Prestacional;
            string   Observacion;

            int DiasLaborables = 5;
            int diasCalculados = 0;

            try
            {
                var        dt         = new DataTable();
                var        rowCnt     = sheet.Dimension.End.Row;
                LNAusencia lnAusencia = new LNAusencia();


                //Verificamos los nombres de las columnas
                // Loop through Columns
                for (var fila = 2; fila <= rowCnt; fila++)
                {
                    EDAusencia Ausencia = new EDAusencia();

                    if (sheet.Cells[fila, 1].Value == null || sheet.Cells[fila, 2].Value == null || sheet.Cells[fila, 3].Value == null ||
                        sheet.Cells[fila, 4].Value == null || sheet.Cells[fila, 5].Value == null || sheet.Cells[fila, 6].Value == null || sheet.Cells[fila, 7].Value == null ||
                        sheet.Cells[fila, 8].Value == null || sheet.Cells[fila, 9].Value == null || sheet.Cells[fila, 10].Value == null || sheet.Cells[fila, 11].Value == null ||
                        sheet.Cells[fila, 12].Value == null || sheet.Cells[fila, 13].Value == null || sheet.Cells[fila, 14].Value == null ||
                        sheet.Cells[fila, 15].Value == null || sheet.Cells[fila, 16].Value == null || sheet.Cells[fila, 17].Value == null ||
                        sheet.Cells[fila, 18].Value == null || sheet.Cells[fila, 19].Value == null || sheet.Cells[fila, 20].Value == null ||
                        sheet.Cells[fila, 21].Value == null || sheet.Cells[fila, 22].Value == null)
                    {
                        edCargue.Message = "Existen campos en blanco por favor revise la fila " + fila + "; es obligatorio diligenciar todas las columnas excepto observaciones.";
                        return(edCargue);
                    }
                    try { consecutivo = int.Parse(sheet.Cells[fila, 1].Value.ToString()); }
                    catch
                    {
                        edCargue.Message = "El valor del campo consecutivo en la fila " + fila + ", tiene que ser un número entero.";
                        return(edCargue);
                    }
                    try { conscutivopadre = int.Parse(sheet.Cells[fila, 2].Value.ToString()); }
                    catch
                    {
                        edCargue.Message = "El valor del campo consecutivopadre en la fila " + fila + ", tiene que ser un número entero.";
                        return(edCargue);
                    }
                    if (conscutivopadre > 0 && fila == 2)
                    {
                        edCargue.Message = "El primer resgistro no puede ser un registro que indica prorroga, debe tener un registro padre que indica la ausencia inicial.";
                        return(edCargue);
                    }
                    try
                    {
                        CodTipoDocumento = VerificarTipoDocumento(int.Parse(sheet.Cells[fila, 3].Value.ToString()));
                        if (CodTipoDocumento < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Tipo_Documento ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Documentos. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Tipo_Documento en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Documentos.";
                        return(edCargue);
                    }

                    Nit_Empresa = sheet.Cells[fila, 4].Value.ToString();
                    if (fila < 3)
                    {
                        DiasLaborables = lnAusencia.ObtenerDiasLaborablesEmpresa(Nit_Empresa);
                    }
                    try
                    {
                        Cod_Departamento = VerificarDepartamento(int.Parse(sheet.Cells[fila, 5].Value.ToString()));
                        if (Cod_Departamento < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Departamento ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Departamentos. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Departamento en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Departamentos.";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Municipio = VerificarMunicipio(int.Parse(sheet.Cells[fila, 6].Value.ToString()), Cod_Departamento);
                        if (Cod_Municipio < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Municipio de la fila " + fila + " asociado al Cod_Departamento ingresado, por favor verifique con la lista en la hoja Municipios. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Municipio en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Municipios.";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Sede = VerificarSede(int.Parse(sheet.Cells[fila, 7].Value.ToString()), Nit_Empresa);
                        if (Cod_Sede < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Sede de la fila " + fila + " asociada al Nit ingresado, por favor verifique con la lista en la hoja Sedes. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Sede en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Sedes.";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Tipo_Documento = VerificarTipoDocumento(int.Parse(sheet.Cells[fila, 8].Value.ToString()));
                        if (Cod_Tipo_Documento < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Tipo_Documento ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Documentos. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Tipo_Documento en la fila" + fila + ", tiene que ser un número entero tomado de lista en la hoja Documentos.";
                        return(edCargue);
                    }

                    Num_Documento     = sheet.Cells[fila, 9].Value.ToString();
                    Nombre_Trabajador = sheet.Cells[fila, 10].Value.ToString();
                    try { Edad = int.Parse(sheet.Cells[fila, 11].Value.ToString()); }
                    catch
                    {
                        edCargue.Message = "El valor del campo Edad en la fila " + fila + ", tiene que ser un número entero.";
                        return(edCargue);
                    }

                    if (sheet.Cells[fila, 12].Value.ToString().ToUpper().Equals("F") || sheet.Cells[fila, 12].Value.ToString().ToUpper().Equals("M"))
                    {
                        Genero = sheet.Cells[fila, 12].Value.ToString().ToUpper();
                    }
                    else
                    {
                        edCargue.Message = "El valor ingresado en Genero fila " + fila + ", no es un valor de genero valido,  por favor ingrese F o M. ";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Ocupacion = VerificarOcupacion(int.Parse(sheet.Cells[fila, 13].Value.ToString()));
                        if (Cod_Ocupacion < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Ocupacion ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Ocupaciones. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Ocupacion en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Ocupaciones.";
                        return(edCargue);
                    }

                    Nombre_EPS       = sheet.Cells[fila, 14].Value.ToString();
                    Tipo_Vinculacion = sheet.Cells[fila, 15].Value.ToString();
                    try { Salario_Base = int.Parse(sheet.Cells[fila, 16].Value.ToString()); }
                    catch
                    {
                        edCargue.Message = "El valor del campo Salario_Base en la fila " + fila + ", tiene que ser un número entero sin puntos.";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Contingencia = VerificarContingencia(int.Parse(sheet.Cells[fila, 17].Value.ToString()));
                        if (Cod_Contingencia < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Contingencia ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Contingencias. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Contingencia en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Contingencias.";
                        return(edCargue);
                    }
                    try
                    {
                        Cod_Area = VerificarProceso(int.Parse(sheet.Cells[fila, 18].Value.ToString()), Nit_Empresa);
                        if (Cod_Area < 1)
                        {
                            edCargue.Message = "No se encontró el Cod_Area de la fila " + fila + " asociado al Nit ingresado, por favor verifique con la lista en la hoja Areas. ";
                            return(edCargue);
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Area en la fila " + fila + ", tiene que ser un número entero tomado de lista en la hoja Areas.";
                        return(edCargue);
                    }
                    try { Fecha_Inicio = Convert.ToDateTime(sheet.Cells[fila, 19].Value, CultureInfo.InvariantCulture); }
                    catch
                    {
                        edCargue.Message = "El valor del campo Fecha_Inicio en la fila " + fila + ", no es una fecha valida o no tiene el formato DD/MM/YYYY.";
                        return(edCargue);
                    }
                    try { Fecha_Fin = Convert.ToDateTime(sheet.Cells[fila, 20].Value, CultureInfo.InvariantCulture); }
                    catch
                    {
                        edCargue.Message = "El valor del campo Fecha_Fin en la fila " + fila + ", no es una fecha valida o no tiene el formato DD/MM/YYYY.";
                        return(edCargue);
                    }
                    try
                    {
                        if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.AccidenteTrabajo || Cod_Contingencia == (int)EnumAusentismo.Contingencias.EnfermedadGeneral || Cod_Contingencia == (int)EnumAusentismo.Contingencias.EnfermedadLaboral)
                        {
                            Cod_Diagnostico = VerificarDiagnostico(sheet.Cells[fila, 21].Value.ToString());
                            if (Cod_Diagnostico < 1)
                            {
                                edCargue.Message = "No se encontró el Cod_Diagnostico ingresado en la fila " + fila + ", por favor verifique con la lista en la hoja Diagnosticos. ";
                                return(edCargue);
                            }
                        }
                        else
                        {
                            Cod_Diagnostico = 0;
                        }
                    }
                    catch
                    {
                        edCargue.Message = "El valor del campo Cod_Diagnostico en la fila " + fila + ", debe ser alfanumerico tomado de lista en la hoja Diagnosticos.";
                        return(edCargue);
                    }
                    try { Factor_Prestacional = Convert.ToDecimal(sheet.Cells[fila, 22].Value, CultureInfo.InvariantCulture); }
                    catch
                    {
                        edCargue.Message = "El valor del campo Factor_Prestacional en la fila " + fila + ", no es valido.";
                        return(edCargue);
                    }

                    if (Fecha_Inicio > Fecha_Fin)
                    {
                        edCargue.Message = "La fecha de inicio es mayor que la fecha fin en la fila " + fila + ".";
                        return(edCargue);
                    }

                    Observacion = string.Empty;
                    if (sheet.Cells[fila, 23].Value != null)
                    {
                        Observacion = sheet.Cells[fila, 23].Value.ToString();
                    }

                    if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.LicenciaPaternidad)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados != 8)
                        {
                            edCargue.Message = "La licencia de paternidad debe ser de 8 dias habiles, por favor verifique las fechas de inicio y fin en la fila " + fila;
                            return(edCargue);
                        }
                    }
                    else if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.LicenciaLuto)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados != 5)
                        {
                            edCargue.Message = "La licencia de luto debe ser de 5 dias habiles, por favor verifique las fechas de inicio y fin en la fila " + fila;
                            return(edCargue);
                        }
                    }
                    else if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.LicenciaMaternidad)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados != 126)
                        {
                            edCargue.Message = "La licencia de maternidad debe ser de 126 días calendario, por favor verifique las fechas de inicio y fin en la fila " + fila;
                            return(edCargue);
                        }
                    }
                    else if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.LicenciaMaternidadMultiple)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados != 140)
                        {
                            edCargue.Message = "La licencia de maternidad por Parto Múltiple debe ser de 140 días calendario, por favor verifique las fechas de inicio y fin en la fila " + fila;
                            return(edCargue);
                        }
                    }
                    else if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.LicenciaMaternidadPrematuro)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados <= 126 || diasCalculados > 217)
                        {
                            edCargue.Message = "La licencia de maternidad por Nacimiento Prematura debe ser superior a 126 dias y no sobrepasar los 217 días calendario, por favor verifique las fechas de inicio y fin en la fila " + fila;
                            return(edCargue);
                        }
                    }

                    else if (Cod_Contingencia == (int)EnumAusentismo.Contingencias.PermisoPorHorasDia)
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                        if (diasCalculados > 1)
                        {
                            edCargue.Message = "El permiso por dias no debe superar 1 dia, por favor verifique que las fechas de inicio y fin sean iguales en la fila " + fila;
                            return(edCargue);
                        }
                    }
                    else
                    {
                        diasCalculados = lnAusencia.CalcularDiasLaborales(Fecha_Inicio, Fecha_Fin, DiasLaborables, Cod_Contingencia);
                    }

                    // Ausencia.IdAusencia = consecutivo;
                    Ausencia.consecutivoPadre   = conscutivopadre;
                    Ausencia.Documento          = Num_Documento;
                    Ausencia.IdEmpresa          = Nit_Empresa;
                    Ausencia.IdEmpresaUsuaria   = cargue.Id_Empresa_Usuaria;
                    Ausencia.idDepartamento     = Cod_Departamento;
                    Ausencia.idMunicipio        = Cod_Municipio;
                    Ausencia.IdContingencia     = Cod_Contingencia;
                    Ausencia.IdDiagnostico      = Cod_Diagnostico;
                    Ausencia.IdSede             = Cod_Sede;
                    Ausencia.IdProceso          = Cod_Area;
                    Ausencia.FechaInicio        = Fecha_Inicio;
                    Ausencia.FechaFin           = Fecha_Fin;
                    Ausencia.DiasAusencia       = diasCalculados;
                    Ausencia.Costo              = ((Salario_Base / 30) * Ausencia.DiasAusencia) * Factor_Prestacional;
                    Ausencia.FactorPrestacional = Factor_Prestacional;
                    Ausencia.Observaciones      = Observacion;
                    Ausencia.IdOcupacion        = Cod_Ocupacion;
                    Ausencia.Sexo            = Genero;
                    Ausencia.Edad            = Edad;
                    Ausencia.Eps             = Nombre_EPS;
                    Ausencia.TipoVinculacion = Tipo_Vinculacion;
                    Ausencia.NombrePersona   = Nombre_Trabajador;

                    Ausencias.Add(Ausencia);
                    tieneDatos = true;
                }
                if (tieneDatos)
                {
                    return(aus.InsertarAusenciasCargueMasivo(Ausencias));
                }
                else
                {
                    edCargue.Message = "El proceso de cargue fallo, El archivo no contiene información valida";
                }
            }
            catch (Exception ex)
            {
                RegistraLog registraLog = new RegistraLog();
                registraLog.RegistrarError(typeof(LNCargue), string.Format("Error en el método WorksheetToDataTable {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                edCargue.Message = "El proceso de cargue fallo: La estructura del archivo no es valida";
                return(edCargue);
            }
            return(edCargue);
        }