//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); } }