public string CrearExcel(int idSucursal, string ruta, int idusuario, string nombreSucursal, string nombreCliente) { var newruta = ValidarFolderUsuario(idusuario, ruta); List <Empleado> listaEmpleados; List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <C_TipoContrato_SAT> listaTipoContrato = new List <C_TipoContrato_SAT>(); List <Puesto> listaPuestos = new List <Puesto>(); List <C_PeriodicidadPago_SAT> listaPeriodicidadPagoSat = new List <C_PeriodicidadPago_SAT>(); List <Empresa> listaEmpresas = new List <Empresa>(); List <DatosBancarios> listaDatosBancarios = new List <DatosBancarios>(); List <C_Banco_SAT> listaBancos = new List <C_Banco_SAT>(); using (var contexto = new RHEntities()) { listaEmpleados = contexto.Empleado.Where(x => x.IdSucursal == idSucursal).ToList(); if (listaEmpleados != null) { var arrayIdEmpleados = listaEmpleados.Select(x => x.IdEmpleado).ToArray(); listaContratos = (from c in contexto.Empleado_Contrato where arrayIdEmpleados.Contains(c.IdEmpleado) && c.Status == true orderby c.IdContrato descending select c).ToList(); listaTipoContrato = contexto.C_TipoContrato_SAT.ToList(); var arrayIdPuesto = listaContratos.Select(x => x.IdPuesto).ToArray(); listaPuestos = (from p in contexto.Puesto where arrayIdPuesto.Contains(p.IdPuesto) select p).ToList(); listaPeriodicidadPagoSat = contexto.C_PeriodicidadPago_SAT.ToList(); listaEmpresas = contexto.Empresa.ToList(); listaDatosBancarios = (from db in contexto.DatosBancarios where arrayIdEmpleados.Contains(db.IdEmpleado) select db).ToList(); listaBancos = contexto.C_Banco_SAT.ToList(); } else { return(""); } } newruta = newruta + "ReporteEmpleados " + nombreSucursal + "-" + nombreCliente + "_.xlsx"; var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Exportacion"); ws.Cell("A1").Value = "PATERNO"; ws.Cell("B1").Value = "MATERNO"; ws.Cell("C1").Value = "NOMBRES"; ws.Cell("D1").Value = "FECHA DE NACIMIENTO"; ws.Cell("E1").Value = "SEXO"; ws.Cell("F1").Value = "RFC"; ws.Cell("G1").Value = "CURP"; ws.Cell("H1").Value = "NSS"; ws.Cell("I1").Value = "UMF"; ws.Cell("J1").Value = "NACIONALIDAD"; ws.Cell("K1").Value = "ESTADO DE ORIGEN"; ws.Cell("L1").Value = "DIRECCION"; ws.Cell("M1").Value = "TELEFONO"; ws.Cell("N1").Value = "CELULAR"; ws.Cell("O1").Value = "EMAIL"; ws.Cell("P1").Value = "EDO CIVIL"; ws.Cell("Q1").Value = "FECHA ALTA"; ws.Cell("R1").Value = "FECHA REAL"; ws.Cell("S1").Value = "FECHA IMSS"; ws.Cell("T1").Value = "FECHA BAJA"; ws.Cell("U1").Value = "TIPO CONTRATO"; ws.Cell("V1").Value = "DIAS CONTRATO"; ws.Cell("W1").Value = "VIGENCIA"; ws.Cell("X1").Value = "PUESTO"; ws.Cell("Y1").Value = "TURNO"; ws.Cell("Z1").Value = "DESCANSO"; ws.Cell("AA1").Value = "PERIOCIDAD DE PAGO"; ws.Cell("AB1").Value = "METODO DE PAGO"; ws.Cell("AC1").Value = "SD"; ws.Cell("AD1").Value = "SDI"; ws.Cell("AE1").Value = "SBC"; ws.Cell("AF1").Value = "SALARIO REAL"; ws.Cell("AG1").Value = "EMPRESA FISCAL"; ws.Cell("AH1").Value = "EMPRESA COMPLEMENTO"; ws.Cell("AI1").Value = "EMPRESA SINDICATO"; ws.Cell("AJ1").Value = "ASIMILADO"; ws.Cell("AK1").Value = "NO SIGA FISCAL"; ws.Cell("AL1").Value = "NO SIGA COMPLEMENTO"; ws.Cell("AM1").Value = "CUENTA BANCARIA"; ws.Cell("AN1").Value = "# TARJETA"; ws.Cell("AO1").Value = "CLABE"; ws.Cell("AP1").Value = "BANCO"; ws.Cell("AQ1").Value = "TIPO DE JORNADA"; ws.Cell("AR1").Value = "TIPO DE SALARIO"; ws.Cell("AS1").Value = "EDO SERVICIO"; ws.Cell("AT1").Value = "SINDICALIZADO"; int i = 2; foreach (var emp in listaEmpleados) { var puesto = ""; var tipocontrato = ""; var periocidad = ""; var empresaF = ""; var empresaC = ""; var empresaA = ""; var empresaS = ""; var banco = "--"; var contrato = listaContratos.FirstOrDefault(x => x.IdEmpleado == emp.IdEmpleado); if (contrato != null) { tipocontrato = listaTipoContrato.Where(x => x.IdTipoContrato == contrato.TipoContrato) .Select(x => x.Descripcion) .FirstOrDefault(); puesto = listaPuestos.Where(x => x.IdPuesto == contrato.IdPuesto).Select(x => x.Descripcion).FirstOrDefault(); periocidad = listaPeriodicidadPagoSat.Where(x => x.IdPeriodicidadPago == contrato.IdPeriodicidadPago) .Select(x => x.Descripcion) .FirstOrDefault(); empresaF = listaEmpresas.Where(x => x.IdEmpresa == contrato.IdEmpresaFiscal) .Select(x => x.RazonSocial) .FirstOrDefault(); empresaC = listaEmpresas.Where(x => x.IdEmpresa == contrato.IdEmpresaComplemento) .Select(x => x.RazonSocial) .FirstOrDefault(); empresaA = listaEmpresas.Where(x => x.IdEmpresa == contrato.IdEmpresaAsimilado) .Select(x => x.RazonSocial) .FirstOrDefault(); empresaS = listaEmpresas.Where(x => x.IdEmpresa == contrato.IdEmpresaSindicato) .Select(x => x.RazonSocial) .FirstOrDefault(); } var datosBanco = listaDatosBancarios.FirstOrDefault(x => x.IdEmpleado == emp.IdEmpleado); //var contrato = ctx.Empleado_Contrato.Where(x => x.IdEmpleado == emp.IdEmpleado).FirstOrDefault(); //var tipocontrato = ctx.C_TipoContrato_SAT.Where(x => x.IdTipoContrato == contrato.TipoContrato).Select(x => x.Descripcion).FirstOrDefault(); //var puesto = ctx.Puesto.Where(x => x.IdPuesto == contrato.IdPuesto).Select(x => x.Descripcion).FirstOrDefault(); //var periocidad = ctx.C_PeriodicidadPago_SAT.Where(x => x.IdPeriodicidadPago == contrato.IdPeriodicidadPago).Select(x => x.Descripcion).FirstOrDefault(); //var empresaF = ctx.Empresa.Where(x => x.IdEmpresa == contrato.IdEmpresaFiscal).Select(x => x.RazonSocial).FirstOrDefault(); //var empresaC = ctx.Empresa.Where(x => x.IdEmpresa == contrato.IdEmpresaComplemento).Select(x => x.RazonSocial).FirstOrDefault(); //var empresaA = ctx.Empresa.Where(x => x.IdEmpresa == contrato.IdEmpresaAsimilado).Select(x => x.RazonSocial).FirstOrDefault(); //var empresaS = ctx.Empresa.Where(x => x.IdEmpresa == contrato.IdEmpresaSindicato).Select(x => x.RazonSocial).FirstOrDefault(); //var datosBanco = ctx.DatosBancarios.Where(x => x.IdEmpleado == emp.IdEmpleado).FirstOrDefault(); if (datosBanco != null) { banco = listaBancos.Where(x => x.IdBanco == datosBanco.IdBanco).Select(x => x.Descripcion).FirstOrDefault(); } ws.Cell("A" + i).Value = emp.APaterno; ws.Cell("B" + i).Value = emp.AMaterno; ws.Cell("C" + i).Value = emp.Nombres; ws.Cell("D" + i).Value = emp.FechaNacimiento; ws.Cell("E" + i).Value = emp.Sexo == "H" ? "Hombre" : "Mujer"; ws.Cell("F" + i).Value = emp.RFC; ws.Cell("G" + i).Value = emp.CURP; ws.Cell("H" + i).Value = emp.NSS; ws.Cell("I" + i).Value = contrato != null ? contrato.UMF : ""; ws.Cell("J" + i).Value = emp.Nacionalidad; ws.Cell("K" + i).Value = emp.Estado; ws.Cell("L" + i).Value = emp.Direccion; ws.Cell("M" + i).Value = emp.Telefono; ws.Cell("N" + i).Value = emp.Celular; ws.Cell("O" + i).Value = emp.Email; ws.Cell("P" + i).Value = emp.EstadoCivil; ws.Cell("Q" + i).Value = contrato?.FechaAlta.ToString("d") ?? ""; ws.Cell("R" + i).Value = contrato?.FechaReal.ToString("d") ?? ""; if (contrato != null) { ws.Cell("S" + i).Value = contrato.FechaIMSS?.ToString("d") ?? ""; ws.Cell("T" + i).Value = contrato.FechaBaja?.ToString("d") ?? ""; } else { ws.Cell("S" + i).Value = ""; ws.Cell("T" + i).Value = ""; } ws.Cell("U" + i).Value = tipocontrato; ws.Cell("V" + i).Value = contrato?.DiasContrato ?? 0; if (contrato != null) { ws.Cell("W" + i).Value = contrato.Vigencia?.ToString("d") ?? ""; } else { ws.Cell("W" + i).Value = ""; } ws.Cell("X" + i).Value = puesto; ws.Cell("Y" + i).Value = contrato != null?UtilsEmpleados.SeleccionarTurno(contrato.Turno) : "-"; ws.Cell("Z" + i).Value = contrato != null?UtilsEmpleados.selectDay(contrato.DiaDescanso) : "-"; ws.Cell("AA" + i).Value = periocidad; ws.Cell("AB" + i).Value = contrato != null?UtilsEmpleados.SeleccionarFormaPagoById(contrato.FormaPago) : "-"; ws.Cell("AC" + i).Value = contrato?.SD ?? 0; ws.Cell("AD" + i).Value = contrato?.SDI ?? 0; ws.Cell("AE" + i).Value = contrato?.SBC ?? 0; ws.Cell("AF" + i).Value = contrato?.SalarioReal ?? 0; ws.Cell("AG" + i).Value = empresaF; ws.Cell("AH" + i).Value = empresaC; ws.Cell("AI" + i).Value = empresaS; ws.Cell("AJ" + i).Value = empresaA; ws.Cell("AK" + i).Value = datosBanco == null ? 0 : datosBanco.NoSigaF; ws.Cell("AL" + i).Value = datosBanco == null ? 0 : datosBanco.NoSigaC; if (datosBanco != null) { ws.Cell("AM" + i).Value = !string.IsNullOrEmpty(datosBanco.CuentaBancaria) ? datosBanco.CuentaBancaria : "0"; ws.Cell("AN" + i).Value = !string.IsNullOrEmpty(datosBanco.NumeroTarjeta) ? datosBanco.NumeroTarjeta : "0"; ws.Cell("AO" + i).Value = datosBanco == null ? "" : datosBanco.Clabe; } else { ws.Cell("AM" + i).Value = 0; ws.Cell("AN" + i).Value = 0; ws.Cell("AO" + i).Value = ""; } ws.Cell("AP" + i).Value = banco; ws.Cell("AQ" + i).Value = contrato != null?UtilsEmpleados.SeleccionarTipoSemanaById(contrato.IdTipoJornada) : "-"; ws.Cell("AR" + i).Value = contrato != null?UtilsEmpleados.TipoSalario(contrato.TipoSalario) : "-"; ws.Cell("AS" + i).Value = contrato?.EntidadDeServicio ?? ""; if (contrato != null) { ws.Cell("AT" + i).Value = contrato.Sindicalizado == false ? "NO" : "Si"; } else { ws.Cell("AT" + i).Value = "-"; } i++; } ws.Columns("2,1").AdjustToContents(); ws.Columns("2,2").AdjustToContents(); ws.Columns("2,3").AdjustToContents(); ws.Columns("2,4").AdjustToContents(); ws.Columns("2,5").AdjustToContents(); ws.Columns("2,6").AdjustToContents(); ws.Columns("2,7").AdjustToContents(); ws.Columns("2,8").AdjustToContents(); ws.Columns("2,9").AdjustToContents(); ws.Columns("2,10").AdjustToContents(); ws.Columns("2,11").AdjustToContents(); ws.Columns("2,12").AdjustToContents(); ws.Columns("2,13").AdjustToContents(); ws.Columns("2,14").AdjustToContents(); ws.Columns("2,15").AdjustToContents(); ws.Columns("2,16").AdjustToContents(); ws.Columns("2,17").AdjustToContents(); ws.Columns("2,18").AdjustToContents(); ws.Columns("2,19").AdjustToContents(); ws.Columns("2,20").AdjustToContents(); ws.Columns("2,21").AdjustToContents(); ws.Columns("2,22").AdjustToContents(); ws.Columns("2,23").AdjustToContents(); ws.Columns("2,24").AdjustToContents(); ws.Columns("2,25").AdjustToContents(); ws.Columns("2,26").AdjustToContents(); ws.Columns("2,27").AdjustToContents(); ws.Columns("2,28").AdjustToContents(); ws.Columns("2,29").AdjustToContents(); ws.Columns("2,30").AdjustToContents(); ws.Columns("2,31").AdjustToContents(); ws.Columns("2,32").AdjustToContents(); ws.Columns("2,33").AdjustToContents(); ws.Columns("2,34").AdjustToContents(); ws.Columns("2,35").AdjustToContents(); ws.Columns("2,36").AdjustToContents(); ws.Columns("2,37").AdjustToContents(); ws.Columns("2,38").AdjustToContents(); ws.Columns("2,39").AdjustToContents(); ws.Columns("2,40").AdjustToContents(); ws.Columns("2,41").AdjustToContents(); ws.Columns("2,42").AdjustToContents(); ws.Columns("2,43").AdjustToContents(); ws.Columns("2,44").AdjustToContents(); ws.Columns("2,45").AdjustToContents(); ws.Columns("2,46").AdjustToContents(); ws.Columns("2,47").AdjustToContents(); ws.Columns("2,48").AdjustToContents(); ws.Cell("A1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("C1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("D1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("B1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("E1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("F1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("G1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("H1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("I1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("J1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("K1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("L1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("M1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("N1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("O1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("P1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("Q1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("R1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("S1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("T1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("U1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("V1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("W1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("X1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("Y1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("Z1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AA1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AB1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AC1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AD1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AE1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AF1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AG1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AH1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AI1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AJ1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AK1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AL1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AM1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AN1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AO1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AP1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AQ1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AR1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AS1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); ws.Cell("AT1").Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1, 0.5); wb.SaveAs(newruta); return(newruta); }
public void UploadRecords(DataTable data, int idSucursal, int idCliente, int idUsuario) { int columnas = data.Columns.Count; Empleados ctx = new Empleados(); DataView dv = data.DefaultView; dv.Sort = "Paterno asc";//desc DataTable sortedDT = dv.ToTable(); foreach (DataRow row in sortedDT.Rows) { if (validateRow(row)) { //Datos Personales Empleado empleado = new Empleado(); empleado.Nombres = row["Nombres"].ToString(); empleado.APaterno = row["Paterno"].ToString(); empleado.AMaterno = row["Materno"].ToString(); empleado.FechaNacimiento = Convert.ToDateTime(row["Fecha de Nacimiento"].ToString()); empleado.Sexo = row["Sexo"].ToString().Equals("Hombre") ? "H" : "M"; empleado.RFC = row["RFC"].ToString().Trim(); empleado.CURP = row["CURP"].ToString().Trim(); empleado.NSS = row["NSS"].ToString(); empleado.Nacionalidad = row["Nacionalidad"].ToString(); empleado.Estado = row["Estado de Origen"].ToString(); empleado.Telefono = row["Teléfono"].ToString(); empleado.Celular = row["Celular"].ToString(); empleado.Email = row["Email"].ToString(); //Se guarda la dirección del empleado empleado.Direccion = row["Dirección"].ToString(); //si la direccion es null se coloca en la celda de dirección "No proporcionada" if (row["Dirección"] == DBNull.Value) { empleado.Direccion = "Dirección no proporcionada"; } else { empleado.Direccion = row["Dirección"].ToString(); } empleado.IdSucursal = idSucursal; empleado.EstadoCivil = row["Edo Civil"].ToString(); empleado.Status = true; empleado.RFCValidadoSAT = 2; var idEmpleado = ctx.CrearEmpleado(empleado, idUsuario); if (idEmpleado > 0) { //Datos de Contratación Empleado_Contrato contrato = new Empleado_Contrato(); contrato.IdEmpleado = idEmpleado; contrato.FechaAlta = Convert.ToDateTime(row["Fecha Alta"].ToString()); contrato.FechaReal = Convert.ToDateTime(row["Fecha Real"].ToString()); if (row["Fecha IMSS"] != DBNull.Value) { contrato.FechaIMSS = Convert.ToDateTime(row["Fecha IMSS"].ToString()); } if (row["UMF"] != DBNull.Value) { contrato.UMF = row["UMF"].ToString(); } contrato.TipoContrato = row["Tipo Contrato"].ToString().Equals("Temporal") ? 2 : 1; if (contrato.TipoContrato == 2) { contrato.Vigencia = Convert.ToDateTime(row["Vigencia"].ToString()); contrato.DiasContrato = Convert.ToInt32(row["Días Contrato"]); } Puestos ctxPuestos = new Puestos(); contrato.IdPuesto = ctxPuestos.ObtenerPuestoPorDescripcion(row["Puesto"].ToString()); contrato.Turno = UtilsEmpleados.SeleccionarTurno(row["Turno"].ToString()); contrato.DiaDescanso = UtilsEmpleados.selectDay(row["Descanso"].ToString()); contrato.IdPeriodicidadPago = UtilsEmpleados.SeleccionarPeriodicidadDePago(row["Periodicidad de pago"].ToString()); contrato.FormaPago = UtilsEmpleados.SeleccionarFormaPago(row["Método Pago"].ToString()); contrato.PagoElectronico = (contrato.FormaPago == 3 || contrato.FormaPago == 4 || contrato.FormaPago == 5 || contrato.FormaPago == 6 || contrato.FormaPago == 7) ? true : false; contrato.SD = Convert.ToDecimal(row["SD"].ToString()); contrato.SDI = Convert.ToDecimal(row["SDI"].ToString()); contrato.SBC = Convert.ToDecimal(row["SBC"].ToString()); contrato.SalarioReal = Convert.ToDecimal(row["Salario Real"].ToString()); contrato.IdTipoJornada = UtilsEmpleados.SeleccionarTipoNomina(row["Tipo de Jornada"].ToString()); contrato.TipoSalario = UtilsEmpleados.SeleccionarTipoSalario(row["Tipo Salario"].ToString()); contrato.EntidadDeServicio = (row["Entidad de Servicio"].ToString()); contrato.Sindicalizado = (row["Sindicalizado"].ToString().ToUpper().Equals("SI")) ? true : false; contrato.Status = true; contrato.IdSucursal = idSucursal; Empresas ctxRP = new Empresas(); int idEmpresaFiscal = 0; int idEmpresaAsimilado = 0; if (row["Empresa Fiscal"] != DBNull.Value) { idEmpresaFiscal = ctxRP.GetIdByRazonSocial(row["Empresa Fiscal"].ToString(), idCliente); contrato.IdEmpresaFiscal = idEmpresaFiscal; } if (row["Empresa Complemento"] != DBNull.Value) { contrato.IdEmpresaComplemento = ctxRP.GetIdByRazonSocial(row["Empresa Complemento"].ToString(), idCliente); } if (row["Empresa Sindicato"] != DBNull.Value) { contrato.IdEmpresaSindicato = ctxRP.GetIdByRazonSocial(row["Empresa Sindicato"].ToString(), idCliente); } if (row["Empresa Asimilado"] != DBNull.Value) { idEmpresaAsimilado = ctxRP.GetIdByRazonSocial(row["Empresa Asimilado"].ToString(), idCliente); contrato.IdEmpresaAsimilado = idEmpresaAsimilado; } //Tipo Regimen contrato.IdTipoRegimen = idEmpresaAsimilado > 0 ? 8 : 1;//Asimilado Honorarios sino Sueldo //Tipo Jornada contrato.IdTipoJornada = 3; //Crea el contrato en la base de datos //factorfx ctx.CrearContrato(contrato, idUsuario); DatosBancarios bancarios = new DatosBancarios(); bancarios.IdEmpleado = idEmpleado; Bancos bllBancos = new Bancos(); if (row["Banco"].ToString().Trim() != "") { bancarios.IdBanco = bllBancos.ObtenerIdBancoPorDescripcion(row["Banco"].ToString()); } int numDatosBancarios = 0; if (row["No Siga Fiscal"] != DBNull.Value) { if (row["No Siga Fiscal"].ToString().Trim() != "") { bancarios.NoSigaF = Convert.ToInt32(row["No Siga Fiscal"]); numDatosBancarios++; } } if (row["No Siga Complemento"] != DBNull.Value) { if (row["No Siga Complemento"].ToString().Trim() != "") { bancarios.NoSigaC = Convert.ToInt32(row["No Siga Complemento"]); numDatosBancarios++; } } if (row["Cuenta Bancaria"] != DBNull.Value) { bancarios.CuentaBancaria = row["Cuenta Bancaria"].ToString(); numDatosBancarios++; } if (row["# Tarjeta"] != DBNull.Value) { bancarios.NumeroTarjeta = row["# Tarjeta"].ToString(); numDatosBancarios++; } if (row["Clabe"] != DBNull.Value) { bancarios.Clabe = row["Clabe"].ToString(); numDatosBancarios++; } #region BENEFICIARIOS if (row["Nombre Beneficiario"] != DBNull.Value) { bancarios.NombreBeneficiario = row["Nombre Beneficiario"].ToString(); numDatosBancarios++; } if (row["RFC Beneficiario"] != DBNull.Value) { bancarios.RFCBeneficiario = row["RFC Beneficiario"].ToString(); numDatosBancarios++; } if (row["CURP Beneficiario"] != DBNull.Value) { bancarios.CURPBeneficiario = row["CURP Beneficiario"].ToString(); numDatosBancarios++; } if (row["Parentezco Beneficiario"] != DBNull.Value) { bancarios.ParentezcoBeneficiario = row["Parentezco Beneficiario"].ToString(); numDatosBancarios++; } if (row["Domicilio Beneficiario"] != DBNull.Value) { bancarios.DomicilioBeneficiario = row["Domicilio Beneficiario"].ToString(); numDatosBancarios++; } #endregion bancarios.Status = true; if (numDatosBancarios > 0) { ctx.NewDatosBancarios(bancarios, idUsuario, false); } var noti = new Notificaciones(); noti.Alta(idEmpleado); //Asignar conceptos Default ConceptosNomina.AsignarConceptosDefaultByEmpleado(idSucursal, idEmpleado); } } } }
//public bool UploadRecords(DataTable data, int idSucursal, int idCliente, int idUsuario) //{ // Empleados ctx = new Empleados(); // foreach (DataRow row in data.Rows) // { // //Datos Personales // Empleado empleado = new Empleado(); // empleado.Nombres = row["Nombres"].ToString(); // empleado.APaterno = row["Paterno"].ToString(); // empleado.AMaterno = row["Materno"].ToString(); // empleado.FechaNacimiento = Convert.ToDateTime(row["Fecha de Nacimiento"].ToString()); // empleado.Sexo = row["Sexo"].ToString().Equals("Hombre") ? "H" : "M"; // empleado.RFC = row["RFC"].ToString().Trim(); // empleado.CURP = row["CURP"].ToString().Trim(); // empleado.NSS = row["NSS"].ToString(); // empleado.Nacionalidad = row["Nacionalidad"].ToString(); // empleado.Estado = row["Estado de Origen"].ToString(); // empleado.Telefono = row["Teléfono"].ToString(); // empleado.Celular = row["Celular"].ToString(); // empleado.Email = row["Email"].ToString(); // empleado.Direccion = (row["Dirección"] == DBNull.Value) ? "Dirección no proporcionada" : row["Dirección"].ToString(); // empleado.IdSucursal = idSucursal; // empleado.EstadoCivil = row["Edo Civil"].ToString(); // empleado.Status = true; // empleado.RFCValidadoSAT = 2; // var idEmpleado = ctx.CrearEmpleado(empleado, idUsuario); // if (idEmpleado > 0) // { // //Datos de Contratación // Empleado_Contrato contrato = new Empleado_Contrato(); // contrato.IdEmpleado = idEmpleado; // contrato.FechaAlta = Convert.ToDateTime(row["Fecha Alta"].ToString()); // contrato.FechaReal = Convert.ToDateTime(row["Fecha Real"].ToString()); // if (row["Fecha IMSS"] != DBNull.Value) // contrato.FechaIMSS = Convert.ToDateTime(row["Fecha IMSS"].ToString()); // if (row["UMF"] != DBNull.Value) // contrato.UMF = row["UMF"].ToString(); // contrato.TipoContrato = row["Tipo Contrato"].ToString().Equals("Temporal") ? 2 : 1; // if (contrato.TipoContrato == 2) // { // contrato.Vigencia = Convert.ToDateTime(row["Vigencia"].ToString()); // contrato.DiasContrato = Convert.ToInt32(row["Días Contrato"]); // } // Puestos ctxPuestos = new Puestos(); // contrato.IdPuesto = ctxPuestos.ObtenerPuestoPorDescripcion(row["Puesto"].ToString()); // contrato.Turno = UtilsEmpleados.SeleccionarTurno(row["Turno"].ToString()); // contrato.DiaDescanso = UtilsEmpleados.selectDay(row["Descanso"].ToString()); // contrato.IdPeriodicidadPago = UtilsEmpleados.SeleccionarPeriodicidadDePago(row["Periodicidad de pago"].ToString()); // contrato.FormaPago = UtilsEmpleados.SeleccionarFormaPago(row["Método Pago"].ToString()); // contrato.PagoElectronico = (contrato.FormaPago == 3 || contrato.FormaPago == 4 || contrato.FormaPago == 5 || contrato.FormaPago == 6 || contrato.FormaPago == 7) ? true : false; // contrato.SD = Convert.ToDecimal(row["SD"].ToString()); // contrato.SDI = Convert.ToDecimal(row["SDI"].ToString()); // contrato.SBC = Convert.ToDecimal(row["SBC"].ToString()); // contrato.SalarioReal = Convert.ToDecimal(row["Salario Real"].ToString()); // contrato.IdTipoJornada = UtilsEmpleados.SeleccionarTipoNomina(row["Tipo de Jornada"].ToString()); // contrato.TipoSalario = UtilsEmpleados.SeleccionarTipoSalario(row["Tipo Salario"].ToString()); // contrato.EntidadDeServicio = (row["Entidad de Servicio"].ToString()); // contrato.Sindicalizado = (row["Sindicalizado"].ToString().ToUpper().Equals("SI")) ? true : false; // contrato.Status = true; // contrato.IdSucursal = idSucursal; // Empresas ctxRP = new Empresas(); // int idEmpresaFiscal = 0; // int idEmpresaAsimilado = 0; // if (row["Empresa Fiscal"] != DBNull.Value) // { // idEmpresaFiscal = ctxRP.GetIdByRazonSocial(row["Empresa Fiscal"].ToString(), idCliente); // contrato.IdEmpresaFiscal = idEmpresaFiscal; // } // if (row["Empresa Complemento"] != DBNull.Value) // contrato.IdEmpresaComplemento = ctxRP.GetIdByRazonSocial(row["Empresa Complemento"].ToString(), idCliente); // if (row["Empresa Sindicato"] != DBNull.Value) // contrato.IdEmpresaSindicato = ctxRP.GetIdByRazonSocial(row["Empresa Sindicato"].ToString(), idCliente); // if (row["Empresa Asimilado"] != DBNull.Value) // { // idEmpresaAsimilado = ctxRP.GetIdByRazonSocial(row["Empresa Asimilado"].ToString(), idCliente); // contrato.IdEmpresaAsimilado = idEmpresaAsimilado; // } // //Tipo Regimen // contrato.IdTipoRegimen = idEmpresaAsimilado > 0 ? 8 : 1;//Asimilado Honorarios sino Sueldo // //Tipo Jornada // contrato.IdTipoJornada = 3; // //Crea el contrato en la base de datos // ctx.CrearContrato(contrato); // DatosBancarios bancarios = new DatosBancarios(); // bancarios.IdEmpleado = idEmpleado; // Bancos bllBancos = new Bancos(); // if (row["Banco"].ToString().Trim() != "") // { // bancarios.IdBanco = bllBancos.ObtenerIdBancoPorDescripcion(row["Banco"].ToString()); // } // int numDatosBancarios = 0; // if (row["No Siga Fiscal"] != DBNull.Value) // { // if (row["No Siga Fiscal"].ToString().Trim() != "") // { // bancarios.NoSigaF = Convert.ToInt32(row["No Siga Fiscal"]); // numDatosBancarios++; // } // } // if (row["No Siga Complemento"] != DBNull.Value) // { // if (row["No Siga Complemento"].ToString().Trim() != "") // { // bancarios.NoSigaC = Convert.ToInt32(row["No Siga Complemento"]); // numDatosBancarios++; // } // } // if (row["Cuenta Bancaria"] != DBNull.Value) // { // bancarios.CuentaBancaria = row["Cuenta Bancaria"].ToString(); // numDatosBancarios++; // } // if (row["# Tarjeta"] != DBNull.Value) // { // bancarios.NumeroTarjeta = row["# Tarjeta"].ToString(); // numDatosBancarios++; // } // if (row["Clabe"] != DBNull.Value) // { // bancarios.Clabe = row["Clabe"].ToString(); // numDatosBancarios++; // } // #region BENEFICIARIOS // if (row["Nombre Beneficiario"] != DBNull.Value) // { // bancarios.NombreBeneficiario = row["Nombre Beneficiario"].ToString(); // numDatosBancarios++; // } // if (row["RFC Beneficiario"] != DBNull.Value) // { // bancarios.RFCBeneficiario = row["RFC Beneficiario"].ToString(); // numDatosBancarios++; // } // if (row["CURP Beneficiario"] != DBNull.Value) // { // bancarios.CURPBeneficiario = row["CURP Beneficiario"].ToString(); // numDatosBancarios++; // } // if (row["Parentezco Beneficiario"] != DBNull.Value) // { // bancarios.ParentezcoBeneficiario = row["Parentezco Beneficiario"].ToString(); // numDatosBancarios++; // } // if (row["Domicilio Beneficiario"] != DBNull.Value) // { // bancarios.DomicilioBeneficiario = row["Domicilio Beneficiario"].ToString(); // numDatosBancarios++; // } // #endregion // bancarios.Status = true; // if (numDatosBancarios > 0) // ctx.NewDatosBancarios(bancarios, false); // var noti = new Notificaciones(); // noti.Alta(idEmpleado); // //Asignar conceptos Default // ConceptosNomina.AsignarConceptosDefaultByEmpleado(idSucursal, idEmpleado); // } // else // { // return false; // } // } // return true; //} public bool UploadRecords(DataTable data, int idSucursal, int idCliente, int idUsuario) { try { List <Empleado> listaEmpleados = new List <Empleado>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <DatosBancarios> listaBancarios = new List <DatosBancarios>(); List <Puesto> puestos = new List <Puesto>(); List <Empresa> empresas = new List <Empresa>(); List <C_Banco_SAT> bancos = new List <C_Banco_SAT>(); using (var context = new RHEntities()) { puestos = context.Puesto.ToList(); empresas = context.Empresa.ToList(); bancos = context.C_Banco_SAT.ToList(); } Empleados ctx = new Empleados(); #region Regitro de datos personal de empleados foreach (DataRow row in data.Rows) { //Datos Empleado Empleado empleado = new Empleado(); empleado.Nombres = row["Nombres"].ToString(); empleado.APaterno = row["Paterno"].ToString(); empleado.AMaterno = row["Materno"].ToString(); empleado.FechaNacimiento = Convert.ToDateTime(row["Fecha de Nacimiento"].ToString()); empleado.Sexo = row["Sexo"].ToString().Equals("Hombre") ? "H" : "M"; empleado.RFC = row["RFC"].ToString().Trim(); empleado.CURP = row["CURP"].ToString().Trim(); empleado.NSS = row["NSS"].ToString(); empleado.Nacionalidad = row["Nacionalidad"].ToString(); empleado.Estado = row["Estado de Origen"].ToString(); empleado.Telefono = row["Teléfono"].ToString(); empleado.Celular = row["Celular"].ToString(); empleado.Email = row["Email"].ToString(); empleado.Direccion = (row["Dirección"] == DBNull.Value) ? "Dirección no proporcionada" : row["Dirección"].ToString(); empleado.IdSucursal = idSucursal; empleado.EstadoCivil = row["Edo Civil"].ToString(); empleado.Status = true; empleado.RFCValidadoSAT = 2; empleado.FechaReg = DateTime.Now; empleado.IdUsuarioReg = idUsuario; listaEmpleados.Add(empleado); } // se registran todos los datos personales del empleado a ecxepcion de los de contrato y bancarios ctx.CrearEmpleados(listaEmpleados); #endregion #region REGISTRO DE CONTRATOS - DATOS BANCARIOS foreach (DataRow row in data.Rows) { #region DATOS CONTRATO var rfcComparacion = row["RFC"].ToString().Trim(); var idEmpleado = listaEmpleados.Where(x => x.RFC == rfcComparacion).Select(x => x.IdEmpleado).FirstOrDefault(); if (idEmpleado == 0) { continue; } //Datos de Contratación Empleado_Contrato contrato = new Empleado_Contrato(); contrato.IdEmpleado = idEmpleado; contrato.FechaAlta = Convert.ToDateTime(row["Fecha Alta"].ToString()); contrato.FechaReal = Convert.ToDateTime(row["Fecha Real"].ToString()); if (row["Fecha IMSS"] != DBNull.Value) { contrato.FechaIMSS = Convert.ToDateTime(row["Fecha IMSS"].ToString()); } if (row["UMF"] != DBNull.Value) { contrato.UMF = row["UMF"].ToString(); } contrato.TipoContrato = row["Tipo Contrato"].ToString().Equals("Temporal") ? 2 : 1; if (contrato.TipoContrato == 2) { contrato.Vigencia = Convert.ToDateTime(row["Vigencia"].ToString()); contrato.DiasContrato = Convert.ToInt32(row["Días Contrato"]); } var puestoDatatable = row["Puesto"].ToString(); contrato.IdPuesto = puestos.Where(x => x.Descripcion == puestoDatatable).Select(x => x.IdPuesto).FirstOrDefault(); contrato.Turno = UtilsEmpleados.SeleccionarTurno(row["Turno"].ToString()); contrato.DiaDescanso = UtilsEmpleados.selectDay(row["Descanso"].ToString()); contrato.IdPeriodicidadPago = UtilsEmpleados.SeleccionarPeriodicidadDePago(row["Periodicidad de pago"].ToString()); contrato.FormaPago = UtilsEmpleados.SeleccionarFormaPago(row["Método Pago"].ToString()); contrato.PagoElectronico = (contrato.FormaPago == 3 || contrato.FormaPago == 4 || contrato.FormaPago == 5 || contrato.FormaPago == 6 || contrato.FormaPago == 7) ? true : false; contrato.SD = Convert.ToDecimal(row["SD"].ToString()); contrato.SDI = Convert.ToDecimal(row["SDI"].ToString()); contrato.SBC = Convert.ToDecimal(row["SBC"].ToString()); contrato.SalarioReal = Convert.ToDecimal(row["Salario Real"].ToString()); contrato.IdTipoJornada = UtilsEmpleados.SeleccionarTipoNomina(row["Tipo de Jornada"].ToString()); contrato.TipoSalario = UtilsEmpleados.SeleccionarTipoSalario(row["Tipo Salario"].ToString()); contrato.EntidadDeServicio = (row["Entidad de Servicio"].ToString()); contrato.Sindicalizado = (row["Sindicalizado"].ToString().ToUpper().Equals("SI")) ? true : false; contrato.Status = true; contrato.IdSucursal = idSucursal; int idEmpresaAsimilado = 0; if (row["Empresa Fiscal"] != DBNull.Value) { var empresaFiscalDatatable = row["Empresa Fiscal"].ToString(); contrato.IdEmpresaFiscal = empresas.Where(x => x.RazonSocial == empresaFiscalDatatable).Select(x => x.IdEmpresa).FirstOrDefault(); } if (row["Empresa Complemento"] != DBNull.Value) { var empresaComplementoDatatable = row["Empresa Complemento"].ToString(); contrato.IdEmpresaComplemento = empresas.Where(x => x.RazonSocial == empresaComplementoDatatable).Select(x => x.IdEmpresa).FirstOrDefault(); } if (row["Empresa Sindicato"] != DBNull.Value) { var empresaSindicatoDatatable = row["Empresa Sindicato"].ToString(); contrato.IdEmpresaSindicato = empresas.Where(x => x.RazonSocial == empresaSindicatoDatatable).Select(x => x.IdEmpresa).FirstOrDefault(); } if (row["Empresa Asimilado"] != DBNull.Value) { var empresaAsimiladoDatatable = row["Empresa Asimilado"].ToString(); idEmpresaAsimilado = empresas.Where(x => x.RazonSocial == empresaAsimiladoDatatable).Select(x => x.IdEmpresa).FirstOrDefault(); contrato.IdEmpresaAsimilado = idEmpresaAsimilado; } //Tipo Regimen contrato.IdTipoRegimen = idEmpresaAsimilado > 0 ? 8 : 1;//Asimilado Honorarios sino Sueldo //Tipo Jornada contrato.IdTipoJornada = 3; contrato.FechaReg = DateTime.Now; contrato.IdUsuarioReg = idUsuario; #endregion #region DATOS BANCARIOS DatosBancarios bancarios = new DatosBancarios(); bancarios.IdEmpleado = idEmpleado; if (row["Banco"].ToString().Trim() != "") { var bancoDatatable = row["Banco"].ToString(); bancarios.IdBanco = bancos.Where(x => x.Descripcion == bancoDatatable).Select(x => x.IdBanco).FirstOrDefault(); } if (row["No Siga Fiscal"] != DBNull.Value) { if (row["No Siga Fiscal"].ToString().Trim() != "") { bancarios.NoSigaF = Convert.ToInt32(row["No Siga Fiscal"]); } } if (row["No Siga Complemento"] != DBNull.Value) { if (row["No Siga Complemento"].ToString().Trim() != "") { bancarios.NoSigaC = Convert.ToInt32(row["No Siga Complemento"]); } } if (row["Cuenta Bancaria"] != DBNull.Value) { bancarios.CuentaBancaria = row["Cuenta Bancaria"].ToString(); } if (row["# Tarjeta"] != DBNull.Value) { bancarios.NumeroTarjeta = row["# Tarjeta"].ToString(); } if (row["Clabe"] != DBNull.Value) { bancarios.Clabe = row["Clabe"].ToString(); } #region BENEFICIARIOS if (row["Nombre Beneficiario"] != DBNull.Value) { bancarios.NombreBeneficiario = row["Nombre Beneficiario"].ToString(); } if (row["RFC Beneficiario"] != DBNull.Value) { bancarios.RFCBeneficiario = row["RFC Beneficiario"].ToString(); } if (row["CURP Beneficiario"] != DBNull.Value) { bancarios.CURPBeneficiario = row["CURP Beneficiario"].ToString(); } if (row["Parentezco Beneficiario"] != DBNull.Value) { bancarios.ParentezcoBeneficiario = row["Parentezco Beneficiario"].ToString(); } if (row["Domicilio Beneficiario"] != DBNull.Value) { bancarios.DomicilioBeneficiario = row["Domicilio Beneficiario"].ToString(); } #endregion bancarios.Status = true; //se agregan a las listas listaContratos.Add(contrato); listaBancarios.Add(bancarios); #endregion }//fin del segundo for //se guardan los datos en DB ctx.CrearContratosDatosB(listaContratos, listaBancarios); #endregion var noti = new Notificaciones(); var arrayIdsEmpleado = listaEmpleados.Select(x => x.IdEmpleado).ToArray(); //noti.Alta(idEmpleado); noti.Alta(arrayIdsEmpleado, idUsuario); KardexEmpleado kardex = new KardexEmpleado(); kardex.AltaByArray(arrayIdsEmpleado, idUsuario); //Asignar conceptos Default ConceptosNomina.AsignarConceptosDefaultByEmpleados(idSucursal, arrayIdsEmpleado); //ConceptosNomina.AsignarConceptosDefaultByEmpleado(idSucursal, idEmpleado); return(true); } catch (Exception ex) { return(false); } }