public void EditarRolYResponsabilidadesTest() { SG_SSTContext db = new SG_SSTContext(); RolPorResponsabilidadRepositorio logica = new RolPorResponsabilidadRepositorio(); Rol rol = new Rol(); rol.Pk_Id_Rol = 20; rol.Descripcion = "TRABAJADORES"; List <Responsabilidades> responsabilidad = new List <Responsabilidades>(); Responsabilidades Respon = new Responsabilidades(); Respon.Descripcion = "Prueba responsabilidad"; responsabilidad.Add(Respon); List <RendicionDeCuentas> rendicionDeCuenta = new List <RendicionDeCuentas>(); RendicionDeCuentas rendicion = new RendicionDeCuentas(); rendicion.Descripcion = "Prueba rendicion"; rendicionDeCuenta.Add(rendicion); int[] responsaEliminadas = null; int[] rendiciEliminadas = null; int Pk_Id_Empresa = 1; EDInformacionAuditoria edInfoauditoria = new EDInformacionAuditoria()//Auditoria { IdentificacionUsuario = "IdUsuarioTest", NombreUsuario = "NombreUsuarioTest", NitEmpresa = "NitEmpresaTest", NombreEmpresa = "NnombreEmpresaTest", IpUsuario = "ipTest" }; bool metodo = logica.EditarRolYResponsabilidades(rol, responsabilidad, rendicionDeCuenta, responsaEliminadas, rendiciEliminadas, Pk_Id_Empresa, edInfoauditoria); Assert.IsNotNull(metodo, "La petición falló, el objeto es nulo"); Assert.IsTrue(metodo, "La petición falló, no se editaron los datos"); }
//personalactualizarpermisos public async Task <Response> Asignacion(Responsabilidades param) { try { // localhost:8080/admeli/xcore2/xcore/services.php/personal/eliminar return(await webService.POST <Responsabilidades, Response>("personalactualizarpermisos", param)); } catch (Exception ex) { throw ex; } }
public bool EditarRolYResponsabilidades(Rol rol, List <Responsabilidades> responsabilidad, List <RendicionDeCuentas> rendicionDeCuenta, int[] responsaEliminadas, int[] rendiciEliminadas, int Pk_Id_Empresa, EDInformacionAuditoria edInfoauditoria) { SG_SSTContext dbaud = new SG_SSTContext(); using (var transaction = db.Database.BeginTransaction()) { try { rol.Fk_Id_Empresa = Pk_Id_Empresa; db.Entry(rol).State = EntityState.Modified; foreach (var item in responsabilidad) { if (item.Pk_Id_Responsabilidades != 0) { /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { Responsabilidades resaudi = dbaud.Tbl_Responsabilidades.Find(item.Pk_Id_Responsabilidades); db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.ModificarResponsabilidad, resaudi.ToString())); } /*fin auditoria*/ db.Entry(item).State = EntityState.Modified; } else { ResponsabilidadesPorRol responsabilidadesPorRoles = new ResponsabilidadesPorRol(); db.Tbl_Responsabilidades.Add(item); /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.CrearResponsabilidad, item.ToString())); } /*fin auditoria*/ responsabilidadesPorRoles.Fk_Id_Rol = rol.Pk_Id_Rol; responsabilidadesPorRoles.Fk_Id_Responsabilidades = item.Pk_Id_Responsabilidades; db.Tbl_Responsabilidades_Por_Rol.Add(responsabilidadesPorRoles); db.SaveChanges(); } } foreach (var item in rendicionDeCuenta) { if (item.Pk_Id_RendicionDeCuentas != 0) { /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { RendicionDeCuentas rescuentaaudi = dbaud.Tbl_RendicionDeCuentas.Find(item.Pk_Id_RendicionDeCuentas); db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.ModificarRendicionDeCuenta, rescuentaaudi.ToString())); } /*fin auditoria*/ db.Entry(item).State = EntityState.Modified; } else { db.Tbl_RendicionDeCuentas.Add(item); /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.CrearRendicionDeCuenta, item.ToString())); } /*fin auditoria*/ RendicionDeCuentasPorRol rendicionDeCuentasPorRol = new RendicionDeCuentasPorRol(); rendicionDeCuentasPorRol.Fk_Id_Rol = rol.Pk_Id_Rol; rendicionDeCuentasPorRol.Fk_Id_RendicionDeCuentas = item.Pk_Id_RendicionDeCuentas; db.Tbl_Rendicion_Cuenta_Por_Rol.Add(rendicionDeCuentasPorRol); db.SaveChanges(); } } if (responsaEliminadas != null) { foreach (var item in responsaEliminadas) { Responsabilidades respon = db.Tbl_Responsabilidades.Find(item); /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.ELIMINACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.EliminarResponsabilidad, respon.ToString())); } /*fin auditoria*/ db.Tbl_Responsabilidades.Remove(respon); } } if (rendiciEliminadas != null) { foreach (var item in rendiciEliminadas) { RendicionDeCuentas rendi = db.Tbl_RendicionDeCuentas.Find(item); /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.EliminarRendicionDeCuenta, item.ToString())); } /*fin auditoria*/ db.Tbl_RendicionDeCuentas.Remove(rendi); } } db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception ex) { //RegistroInformacion.EnviarError<Rol>(ex.Message); transaction.Rollback(); return(false); } } }
public bool CrearRolYResponsabilidadesPreestablecidos(int id) { using (var transaction = db.Database.BeginTransaction()) { try { List <Rol> roles = new List <Rol>(); roles = db.Tbl_Rol .Include(r => r.ResponsabilidadesPorRoles) .Include(z => z.RendicionDeCuentasPorRoles) .Where(x => x.Fk_Id_Empresa.Equals(null)).ToList(); foreach (var adr in roles) { Rol rol = new Rol(); List <Responsabilidades> respons = new List <Responsabilidades>(); List <RendicionDeCuentas> rendic = new List <RendicionDeCuentas>(); ResponsabilidadesPorRol responsabilidadesPorRol = new ResponsabilidadesPorRol(); RendicionDeCuentasPorRol rendicionDeCuentasPorRol = new RendicionDeCuentasPorRol(); rol.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); rol.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); rol.Descripcion = adr.Descripcion; rol.Fk_Id_Empresa = id; List <ResponsabilidadesPorRol> ResponsabilidPorRol = new List <ResponsabilidadesPorRol>(); List <RendicionDeCuentasPorRol> RendicionPorRol = new List <RendicionDeCuentasPorRol>(); ResponsabilidPorRol = adr.ResponsabilidadesPorRoles.ToList(); RendicionPorRol = adr.RendicionDeCuentasPorRoles.ToList(); foreach (var rpr in ResponsabilidPorRol) { Responsabilidades resp = new Responsabilidades(); resp.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); ResponsabilidadesPorRol rxrol = new ResponsabilidadesPorRol(); resp.Descripcion = rpr.Responsabilidades.Descripcion; rxrol.Rol = rol; resp.ResponsabilidadesPorRoles.Add(rxrol); respons.Add(resp); } db.Tbl_Responsabilidades.AddRange(respons); foreach (var rcpr in RendicionPorRol) { RendicionDeCuentas rend = new RendicionDeCuentas(); rend.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); RendicionDeCuentasPorRol rdxrol = new RendicionDeCuentasPorRol(); rend.Descripcion = rcpr.RendicionDeCuentas.Descripcion; rdxrol.Rol = rol; rend.RendicionDeCuentasPorRoles.Add(rdxrol); rendic.Add(rend); } db.Tbl_RendicionDeCuentas.AddRange(rendic); } db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception ex) { //RegistroInformacion.EnviarError<Rol>(ex.Message); transaction.Rollback(); return(false); } } }
public bool GuardarRolYResponsabilidades(Rol DescripRol, List <Responsabilidades> responsabilidad, List <RendicionDeCuentas> rendicion, int Pk_Id_Empresa, EDInformacionAuditoria edInfoauditoria) { using (var transaction = db.Database.BeginTransaction()) { try { Rol rol = new Rol(); List <Responsabilidades> respons = new List <Responsabilidades>(); List <RendicionDeCuentas> rendic = new List <RendicionDeCuentas>(); ResponsabilidadesPorRol responsabilidadesPorRol = new ResponsabilidadesPorRol(); RendicionDeCuentasPorRol rendicionDeCuentasPorRol = new RendicionDeCuentasPorRol(); rol.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); rol.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); rol.Descripcion = DescripRol.Descripcion.ToUpper(); rol.Fk_Id_Empresa = Pk_Id_Empresa; foreach (var rpr in responsabilidad) { Responsabilidades resp = new Responsabilidades(); resp.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); ResponsabilidadesPorRol rxrol = new ResponsabilidadesPorRol(); rxrol.Rol = rol; resp.ResponsabilidadesPorRoles.Add(rxrol); resp.Descripcion = rpr.Descripcion; respons.Add(resp); } foreach (var rendpr in rendicion) { RendicionDeCuentas rend = new RendicionDeCuentas(); rend.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); RendicionDeCuentasPorRol rendxrol = new RendicionDeCuentasPorRol(); rendxrol.Rol = rol; rend.RendicionDeCuentasPorRoles.Add(rendxrol); rend.Descripcion = rendpr.Descripcion; rendic.Add(rend); } db.Tbl_Responsabilidades.AddRange(respons); db.Tbl_RendicionDeCuentas.AddRange(rendic); /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial) { db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial, Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST, Enumeraciones.EnumAuditoriaSistema.Opciones.CrearRol, rol.ToString())); } /*fin auditoria*/ //db.Tbl_Rol.Add(rol); db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception ex) { //RegistroInformacion.EnviarError<Rol>(ex.Message); transaction.Rollback(); return(false); } } }
private async void guardarPersonal() { Bloqueo.bloquear(this, true); if (!validarCampos()) { Bloqueo.bloquear(this, false); return; } try { // Procediendo con el guardado crearObjetoSucursal(); // Obteniendo de la ubicacion geografica del sucursal Response res = await locationModel.guardarUbigeo(ubicacionGeografica); currentPersonalAux.idUbicacionGeografica = res.id; if (nuevo) { Response response = await personalModel.guardar(currentPersonalAux); currentPersonalAux.idPersonal = response.id; MessageBox.Show(response.msj, "Guardar", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Response response = await personalModel.modificar(currentPersonalAux); MessageBox.Show(response.msj, "Modificar", MessageBoxButtons.OK, MessageBoxIcon.Information); } foreach (Sucursal S in listSucursal) { List <TreeNode> listN = matrizNodes[S.idSucursal]; if (listN.Count <= 0) { continue; } List <Permisos> listP = matrizPersimos[S.idSucursal]; asignarPuntoVenta = new List <AsignarPuntoVenta>(); personalAlmacen = new List <PersonalAlmacen>(); int i = 0; foreach (TreeNode T in listN) { Permisos permisos = listP[i++]; asignarResponsablidad(permisos.nombre, permisos, T, T.Nodes.Count); } responsabilidades = new Responsabilidades(); responsabilidades.asignarCaja = asignarCaja; responsabilidades.asignarPuntoAdministracion = asignarPuntoAdministracion; responsabilidades.asignarPuntoCompra = asignarPuntoCompra; responsabilidades.asignarPuntoGerencia = asignarPuntoGerencia; responsabilidades.asignarPuntoVenta = asignarPuntoVenta; responsabilidades.personalAlmacen = personalAlmacen; await personalModel.Asignacion(responsabilidades); } Bloqueo.bloquear(this, false); this.Close(); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message, "Guardar", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { Bloqueo.bloquear(this, false); } }
private async void guardarPersonal() { if (!validarCampos()) { return; } try { btnAceptar.Enabled = false; // Procediendo con el guardado crearObjetoSucursal(); // Obteniendo de la ubicacion geografica del sucursal Response res = await locationModel.guardarUbigeo(ubicacionGeografica); currentPersonalAux.idUbicacionGeografica = res.id; if (nuevo) { Response response = await personalModel.guardar(currentPersonalAux); currentPersonalAux.idPersonal = response.id; MessageBox.Show(response.msj, "Guardar", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Response response = await personalModel.modificar(currentPersonalAux); MessageBox.Show(response.msj, "Modificar", MessageBoxButtons.OK, MessageBoxIcon.Information); } int i = 0; foreach (TreeNode T in this.listNode) { Permisos permisos = listPermisos[i++]; if (T.Nodes.Count == 0) { asignarResponsablidad(permisos.nombre, permisos, T); } } responsabilidades = new Responsabilidades(); responsabilidades.asignarCaja = asignarCaja; responsabilidades.asignarPuntoAdministracion = asignarPuntoAdministracion; responsabilidades.asignarPuntoCompra = asignarPuntoCompra; responsabilidades.asignarPuntoGerencia = asignarPuntoGerencia; responsabilidades.asignarPuntoVenta = asignarPuntoVenta; responsabilidades.personalAlmacen = personalAlmacen; await personalModel.Asignacion(responsabilidades); this.Close(); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message, "Guardar", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { btnAceptar.Enabled = true; } }
/// <summary> /// Registra la información de una nueva empresa, sus roles, sede principal, /// responsabilidades y rendición de cuentas /// </summary> /// <param name="empresa"></param> /// <returns></returns> public EDEmpresas GuardarEmpresaYSusRelaciones(EDEmpresas empresa) { using (SG_SSTContext context = new SG_SSTContext()) { using (var Transaction = context.Database.BeginTransaction()) { try { //se registra en base de datos la nueva empresa Empresa empre = new Empresa() { Pk_Id_Empresa = empresa.Id_Empresa, Nit_Empresa = empresa.Nit_Empresa, Tipo_Documento = empresa.Tipo_Documento, Identificacion_Representante = empresa.Identificacion_Representante, Razon_Social = empresa.Razon_Social, Direccion = empresa.Direccion, Telefono = empresa.Telefono, Fax = empresa.Fax, Riesgo = empresa.Riesgo, Total_Empleados = empresa.Total_Empleados, ID_Seccional = empresa.IdSeccional, ID_Sector_Economico = empresa.IdSectorEconomico, Email = empresa.Email == null ? "" : empresa.Email.ToLower(), Sitio_Web = empresa.SitioWeb, Codigo_Actividad = empresa.Codigo_Actividad, Fecha_Vigencia_Actual = empresa.Fecha_Vigencia_Actual, Flg_Estado = empresa.Flg_Estado, Zona = empresa.Zona, Descripcion_Actividad = empresa.Descripcion_Actividad }; context.Tbl_Empresa.Add(empre); context.SaveChanges(); //se obtienen los roles base asociados a la empresa. var listaRoles = context.Tbl_RolesBase.Select(r => r).ToList(); //var nombreParametro = Enumeraciones.EnumAdministracionUsuarios.ParametrosSistemaPorNombre.RolesBaseEmpresa; //var rolesEmpresa = context.Tbl_ParametrosSistema.Where(ps => ps.NombreParametro.Equals(nombreParametro)).Select(ps => ps.Valor).FirstOrDefault(); //se obtienen los roles base que deben estar asociados a una nueva empresa //var roles = (from rol in context.Tbl_Rol // join rc in context.Tbl_Responsabilidades_Por_Rol on rol.Pk_Id_Rol equals rc.Fk_Id_Rol // join rcr in context.Tbl_Rendicion_Cuenta_Por_Rol on rol.Pk_Id_Rol equals rcr.Fk_Id_Rol // group rol by new { rol.Descripcion } into grpRol // select new // { // NombreRol = grpRol.Key.Descripcion, // }).ToList(); if (listaRoles != null && listaRoles.Count > 0) { //para cada rol base obtenido se registran las responsabilidades //y las rendiciones de cuentas asociadas a cada rol foreach (var rol in listaRoles) { //var rolRespoRenCuent = context.Tbl_Rol.Where(r => r.Descripcion.Equals(rol)).FirstOrDefault(); //se obtiene el listado de responsabilidades asociadas a cada rol var responsRol = (from rsp in context.Tbl_ResponsabilidadesBase join rspr in context.Tbl_Roles_Por_ResponsabilidadesBase on rsp.Pk_Id_ResponsabilidadesBase equals rspr.Fk_Id_ResponsabilidadesBase where rspr.Fk_Id_RolesBase == rol.Pk_Id_RolesBase select rsp).ToList(); //se obtiene el listado de rendición de cuentas asociadas a cada rol var rendCuentasRol = (from rc in context.Tbl_RendicionDeCuentasBase join rcr in context.Tbl_Roles_Por_RendicionDeCuentasBase on rc.Pk_Id_RendicionDeCuentasBase equals rcr.Fk_Id_RendicionDeCuentasBase where rcr.Fk_Id_RolesBase == rol.Pk_Id_RolesBase select rc).ToList(); var nuevoRol = new Rol() { Descripcion = rol.Descripcion, Fk_Id_Empresa = empre.Pk_Id_Empresa }; context.Tbl_Rol.Add(nuevoRol); context.SaveChanges(); List <Responsabilidades> respons = new List <Responsabilidades>(); foreach (var rpr in responsRol) { var resp = new Responsabilidades(); resp.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); ResponsabilidadesPorRol rxrol = new ResponsabilidadesPorRol(); resp.Descripcion = rpr.Descripcion; rxrol.Rol = nuevoRol; resp.ResponsabilidadesPorRoles.Add(rxrol); respons.Add(resp); } context.Tbl_Responsabilidades.AddRange(respons); List <RendicionDeCuentas> rendic = new List <RendicionDeCuentas>(); foreach (var rcpr in rendCuentasRol) { RendicionDeCuentas rend = new RendicionDeCuentas(); rend.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); RendicionDeCuentasPorRol rdxrol = new RendicionDeCuentasPorRol(); rend.Descripcion = rcpr.Descripcion; rdxrol.Rol = nuevoRol; rend.RendicionDeCuentasPorRoles.Add(rdxrol); rendic.Add(rend); } context.Tbl_RendicionDeCuentas.AddRange(rendic); } context.SaveChanges(); } //se registra en base de datos la nueva sede principal Sede nuevaSede = new Sede() { Fk_Id_Empresa = empre.Pk_Id_Empresa, Nombre_Sede = "Principal", Direccion_Sede = empre.Direccion, Sector = "Urbano" }; context.Tbl_Sede.Add(nuevaSede); context.SaveChanges(); //se consulta y se guarda la relación de la sede principal con el municipio var codMunicipio = empresa.Municipio.CodigoMunicipio; var codDepartamento = empresa.Departamento.Codigo_Departamento; var idMunicipio = (from m in context.Tbl_Municipio join d in context.Tbl_Departamento on m.Fk_Nombre_Departamento equals d.Pk_Id_Departamento where m.Codigo_Municipio.Equals(codMunicipio) && d.Codigo_Departamento.Equals(codDepartamento) select m.Pk_Id_Municipio).FirstOrDefault(); SedeMunicipio nuevaSedeMun = new SedeMunicipio() { Fk_id_Sede = nuevaSede.Pk_Id_Sede, Fk_Id_Municipio = idMunicipio }; context.Tbl_SedeMunicipio.Add(nuevaSedeMun); //se guarda la relación de la cede con su centro de trabajo //(Actividad económica) CentroTrabajo nuevoCentTrab = new CentroTrabajo { Fk_Id_Sede = nuevaSede.Pk_Id_Sede, ID_Centro = 1, Numero_Trabajadores = 0, Codigo_Actividad = empre.Codigo_Actividad, Descripcion_Actividad = empre.Descripcion_Actividad }; context.Tbl_Centro_de_Trabajo.Add(nuevoCentTrab); context.SaveChanges(); Transaction.Commit(); empresa.Id_Empresa = empre.Pk_Id_Empresa; } catch (Exception e) { Transaction.Rollback(); return(empresa); } } } return(empresa); }
public void GuardarRolesParaNuevaEmpresa() { try { using (SG_SSTContext context = new SG_SSTContext()) { using (var tx = context.Database.BeginTransaction()) { try { var roles = (from rol in context.Tbl_Rol join rc in context.Tbl_Responsabilidades_Por_Rol on rol.Pk_Id_Rol equals rc.Fk_Id_Rol join rcr in context.Tbl_Rendicion_Cuenta_Por_Rol on rol.Pk_Id_Rol equals rcr.Fk_Id_Rol group rol by new { rol.Descripcion } into grpRol select new { NombreRol = grpRol.Key.Descripcion, }).ToList(); if (roles != null && roles.Count > 0) { foreach (var rol in roles) { var rolRespoRenCuent = context.Tbl_Rol.Where(r => r.Descripcion.Equals(rol.NombreRol)).FirstOrDefault(); var responsRol = (from rsp in context.Tbl_Responsabilidades join rspr in context.Tbl_Responsabilidades_Por_Rol on rsp.Pk_Id_Responsabilidades equals rspr.Fk_Id_Responsabilidades where rspr.Fk_Id_Rol == rolRespoRenCuent.Pk_Id_Rol select rsp).ToList(); var rendCuentasRol = (from rc in context.Tbl_RendicionDeCuentas join rcr in context.Tbl_Rendicion_Cuenta_Por_Rol on rc.Pk_Id_RendicionDeCuentas equals rcr.Fk_Id_RendicionDeCuentas where rcr.Fk_Id_Rol == rolRespoRenCuent.Pk_Id_Rol select rc).ToList(); var nuevoRol = new Rol() { Descripcion = rol.NombreRol, Fk_Id_Empresa = null }; context.Tbl_Rol.Add(nuevoRol); context.SaveChanges(); List <Responsabilidades> respons = new List <Responsabilidades>(); foreach (var rpr in responsRol) { var resp = new Responsabilidades(); resp.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>(); ResponsabilidadesPorRol rxrol = new ResponsabilidadesPorRol(); resp.Descripcion = rpr.Descripcion; rxrol.Rol = nuevoRol; resp.ResponsabilidadesPorRoles.Add(rxrol); respons.Add(resp); } context.Tbl_Responsabilidades.AddRange(respons); List <RendicionDeCuentas> rendic = new List <RendicionDeCuentas>(); foreach (var rcpr in rendCuentasRol) { RendicionDeCuentas rend = new RendicionDeCuentas(); rend.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>(); RendicionDeCuentasPorRol rdxrol = new RendicionDeCuentasPorRol(); rend.Descripcion = rcpr.Descripcion; rdxrol.Rol = nuevoRol; rend.RendicionDeCuentasPorRoles.Add(rdxrol); rendic.Add(rend); } context.Tbl_RendicionDeCuentas.AddRange(rendic); } tx.Commit(); } } catch (Exception ex) { tx.Rollback(); } } } } catch (Exception ex) { } }