public ActionResult Edit(int?id) { var usuarioActual = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (usuarioActual == null) { ViewBag.mensaje1 = "Debe Registrarse para Ingresar a este Modulo."; return(RedirectToAction("Login", "Home")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Sede sede = db.Tbl_Sede.Find(id); if (sede == null) { return(HttpNotFound()); } List <CentroTrabajo> centros = db.Tbl_Centro_de_Trabajo.Where(d => d.Fk_Id_Sede == sede.Pk_Id_Sede).ToList(); List <Departamento> departamentos = recursosServicios.ObtenerDepartamentos(); ViewBag.nitEmpresa = usuarioActual.NitEmpresa; SedeMunicipio sedeMunipio = sedeServicios.ObtenerSedePorMunicipio(sede.Pk_Id_Sede); ViewBag.Fk_Id_Departamento = new SelectList(departamentos, "Pk_Id_Departamento", "Nombre_Departamento", sedeMunipio.Municipio.Fk_Nombre_Departamento); List <Municipio> municipios = recursosServicios.ObtenetMunicipios(sedeMunipio.Municipio.Fk_Nombre_Departamento); ViewBag.Fk_Id_Municipio = new SelectList(municipios, "Pk_Id_Municipio", "Nombre_Municipio", sedeMunipio.Fk_Id_Municipio); ViewBag.Urbano = sede.Sector.Equals("Urbano") ? true : false; return(View(sede)); }
public bool GuardarEmpresa(Empresa Empresas, Sede sede, SedeMunicipio sedemunicipio) { using (var transaction = db.Database.BeginTransaction()) { try { List <Empresa> empresas = db.Tbl_Empresa .Where(rs => rs.Pk_Id_Empresa > 0).ToList(); foreach (var rs in empresas) { if (rs.Nit_Empresa == Empresas.Nit_Empresa) { return(false); } } if (Empresas.Pk_Id_Empresa > 0) { ModificarEmpresa(Empresas); } else { sede.SedeMunicipios = new List <SedeMunicipio>(); sede.SedeMunicipios.Add(sedemunicipio); sede.Nombre_Sede = "Principal"; Empresas.sedes = new List <Sede>(); Empresas.sedes.Add(sede); db.Tbl_Empresa.Add(Empresas); } db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception) { transaction.Rollback(); return(false); } } }
public void GuardarSedePrincipal(EDSede sede) { using (SG_SSTContext context = new SG_SSTContext()) { using (var tx = context.Database.BeginTransaction()) { try { Sede nuevaSede = new Sede() { Fk_Id_Empresa = sede.IdEmpresa, Nombre_Sede = "Principal", Direccion_Sede = sede.DireccionSede, Sector = "Urbano" }; context.Tbl_Sede.Add(nuevaSede); context.SaveChanges(); sede.IdSede = nuevaSede.Pk_Id_Sede; var idMunicipio = context.Tbl_Municipio.Where(m => m.Codigo_Municipio == sede.IdMunicipio.ToString()).Select(e => e.Pk_Id_Municipio).FirstOrDefault(); SedeMunicipio nuevaSedeMun = new SedeMunicipio() { Fk_id_Sede = sede.IdSede, Fk_Id_Municipio = int.Parse(idMunicipio.ToString()) }; context.Tbl_SedeMunicipio.Add(nuevaSedeMun); context.SaveChanges(); tx.Commit(); } catch (Exception ex) { tx.Rollback(); } } } }
public ActionResult Edit([Bind(Include = "Pk_Id_Sede,Nombre_Sede,Direccion_Sede,Sector")] Sede sede, SedeMunicipio sedePorMunicipio, List <CentroTrabajo> centro, int pksede, string ipUsuario) { var usuarioActual = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (usuarioActual == null) { ViewBag.mensaje1 = "Debe Registrarse para Ingresar a este Modulo."; return(RedirectToAction("Login", "Home")); } EDInformacionAuditoria edInfoauditoria = new EDInformacionAuditoria() { IdentificacionUsuario = usuarioActual.Documento, NombreUsuario = usuarioActual.NombreUsuario, NitEmpresa = usuarioActual.NitEmpresa, NombreEmpresa = usuarioActual.RazonSocialEmpresa, IpUsuario = ipUsuario }; sede.Nombre_Sede = sede.Nombre_Sede.ToUpper(); sedeServicios = new SedeServicios(db); if (ModelState.IsValid) { using (var Transaction = db.Database.BeginTransaction()) { RegistraLog registraLog = new RegistraLog(); try { /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaEmpresa) { SG_SSTContext dbAud = new SG_SSTContext(); Sede sedeAud = dbAud.Tbl_Sede.Find(sede.Pk_Id_Sede); db.Tbl_AuditoriaEmpresaSistema.Add(auditoriaSistema.ObtenerAuditoriaSistemaEmpresa(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Empresa, Enumeraciones.EnumAuditoriaSistema.SubModulos.Datos_generales_de_la_empresa, Enumeraciones.EnumAuditoriaSistema.Opciones.Sedes, sedeAud.ToString())); } /*fin auditoria*/ List <CentroTrabajo> centros = db.Tbl_Centro_de_Trabajo.Where(ct => ct.Sede.Fk_Id_Empresa == usuarioActual.IdEmpresa && ct.Fk_Id_Sede == pksede).ToList(); if (centros != null) { if (centro != null) { var sw = false; string centrosencontrados = ""; foreach (var sct in centros) { for (int i = 0; i < centro.Count; i++) { if (sct.Codigo_Actividad == centro[i].Codigo_Actividad) { centrosencontrados += (centro[i].Codigo_Actividad.ToString() + " , "); sw = true; } } } if (sw != false) { TempData["shortMessage1"] = "Actividad Economica: " + centrosencontrados + " ya fue registrada anteriormente a la sede, el registro no se realizo."; return(RedirectToAction("SedesPorMunicipios")); } } } //else //{ SedeMunicipio sedeMunipio = sedeServicios.ObtenerSedePorMunicipio(sede.Pk_Id_Sede); sede.Fk_Id_Empresa = usuarioActual.IdEmpresa; if (sedeMunipio.Fk_Id_Municipio != sedePorMunicipio.Fk_Id_Municipio) { sedeMunipio.Fk_Id_Municipio = sedePorMunicipio.Fk_Id_Municipio; sedeMunipio.Sede = sede; db.Entry(sedeMunipio).State = EntityState.Modified; List <CentroTrabajo> ActividadEcon = new List <CentroTrabajo>(); if (centro != null) { foreach (var ae in centro) { CentroTrabajo axs = new CentroTrabajo(); axs.Codigo_Actividad = ae.Codigo_Actividad; axs.Descripcion_Actividad = ae.Descripcion_Actividad; axs.Fk_Id_Sede = pksede; ActividadEcon.Add(axs); } } db.Entry(sede).State = EntityState.Modified; db.Tbl_Centro_de_Trabajo.AddRange(ActividadEcon); TempData["shortMessage"] = "Informacion Registrada Correctamente."; } else { List <CentroTrabajo> ActividadEcon = new List <CentroTrabajo>(); sedeMunipio.Fk_Id_Municipio = sedePorMunicipio.Fk_Id_Municipio; sedeMunipio.Sede = sede; if (centro != null) { foreach (var ae in centro) { CentroTrabajo axs = new CentroTrabajo(); axs.Codigo_Actividad = ae.Codigo_Actividad; axs.Descripcion_Actividad = ae.Descripcion_Actividad; axs.Fk_Id_Sede = pksede; ActividadEcon.Add(axs); } } db.Entry(sede).State = EntityState.Modified; db.Tbl_Centro_de_Trabajo.AddRange(ActividadEcon); } db.SaveChanges(); Transaction.Commit(); TempData["shortMessage"] = "Informacion Registrada Correctamente."; // } } catch (Exception ex) { registraLog.RegistrarError(typeof(SedeController), string.Format("Error al realizar la transacción {0}: {1}", DateTime.Now, ex.StackTrace), ex); Transaction.Rollback(); } } return(RedirectToAction("SedesPorMunicipios")); } return(View(sede)); }
public ActionResult Create(Sede sede, SedeMunicipio sedePorMunicipio, List <CentroTrabajo> centro, string ipUsuario) { var usuarioActual = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (usuarioActual == null) { ViewBag.Mensaje = "Debe estar autenticado para poder continuar."; return(View()); } EDInformacionAuditoria edInfoauditoria = new EDInformacionAuditoria() { IdentificacionUsuario = usuarioActual.Documento, NombreUsuario = usuarioActual.NombreUsuario, NitEmpresa = usuarioActual.NitEmpresa, NombreEmpresa = usuarioActual.RazonSocialEmpresa, IpUsuario = ipUsuario }; using (var tx = db.Database.BeginTransaction()) { Empresa empresa = db.Tbl_Empresa.Find(usuarioActual.IdEmpresa); sede.Empresa = empresa; sede.Nombre_Sede = sede.Nombre_Sede.ToUpper(); List <SedeMunicipio> buscarsede = db.Tbl_SedeMunicipio.Where(rs => rs.Sede.Fk_Id_Empresa == usuarioActual.IdEmpresa && rs.id_sedeMunicipio != null).ToList(); if (buscarsede != null) { List <SedeMunicipio> buscarsede1 = db.Tbl_SedeMunicipio.Where(rs => rs.Sede.Fk_Id_Empresa == usuarioActual.IdEmpresa && rs.Sede.Nombre_Sede == sede.Nombre_Sede).ToList(); if (buscarsede1.Count > 0) { TempData["shortMessage"] = "Sede Ingresada ya Existe."; } else { List <CentroTrabajo> centros = db.Tbl_Centro_de_Trabajo.Where(ct => ct.Sede.Fk_Id_Empresa == usuarioActual.IdEmpresa).ToList(); if (ModelState.IsValid) { sede.SedeMunicipios = new List <SedeMunicipio>(); sede.SedeMunicipios.Add(sedePorMunicipio); sede.CentrosTrabajo = centro; /*inicio auditoria*/ if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaEmpresa) { db.Tbl_AuditoriaEmpresaSistema.Add(auditoriaSistema.ObtenerAuditoriaSistemaEmpresa(edInfoauditoria, Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION, Enumeraciones.EnumAuditoriaSistema.Modulos.Empresa, Enumeraciones.EnumAuditoriaSistema.SubModulos.Datos_generales_de_la_empresa, Enumeraciones.EnumAuditoriaSistema.Opciones.Sedes, sede.ToString())); } /*fin auditoria*/ db.Tbl_Sede.Add(sede); db.SaveChanges(); tx.Commit(); TempData["shortMessage"] = "Sede Almacenada Correctamente."; List <SedeMunicipio> buscarsedes = db.Tbl_SedeMunicipio.Where(rs => rs.Sede.Fk_Id_Empresa == usuarioActual.IdEmpresa && rs.id_sedeMunicipio != null).ToList(); ViewBag.mensaje = "La Sede: " + sede.Nombre_Sede + " Registrada con Exito."; return(RedirectToAction("SedesPorMunicipios", buscarsedes)); } } } } return(RedirectToAction("SedesPorMunicipios")); }
public ActionResult Create(GrabarEmpresaModel GbrEmpresa, Sede sede, SedeMunicipio sedeMunicipio) { var usuarioActual = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (usuarioActual == null) { ViewBag.Mensaje = "Debe estar autenticado para continuar."; return(RedirectToAction("Login", "Home")); } if (ModelState.IsValid) { var empresas = db.Tbl_Empresa.Where(e => e.Pk_Id_Empresa == usuarioActual.IdEmpresa & e.Nit_Empresa.Equals(GbrEmpresa.Nit_Empresa)).FirstOrDefault(); if (empresas != null) { ViewBag.mensaje1 = "La Empresa ya se encuentra registrada"; } else { var empresaEvaluar = new EDEmpresas() { Razon_Social = GbrEmpresa.Razon_Social, Nit_Empresa = GbrEmpresa.Nit_Empresa, Codigo_Actividad = Convert.ToInt32(GbrEmpresa.Codigo_Actividad), Tipo_Documento = GbrEmpresa.Tipo_Documento, Telefono = GbrEmpresa.Telefono, Fax = GbrEmpresa.Fax, Identificacion_Representante = GbrEmpresa.Identificacion_Representante, IdSeccional = GbrEmpresa.Id_Seccional, IdSectorEconomico = GbrEmpresa.Id_SectorEconomico, Riesgo = GbrEmpresa.Riesgo, Fecha_Vigencia_Actual = GbrEmpresa.Fecha_Vigencia_Actual, Flg_Estado = GbrEmpresa.Flg_Estado, Zona = GbrEmpresa.Zona, SitioWeb = GbrEmpresa.Sitio_Web, Total_Empleados = GbrEmpresa.Total_Empleados, Direccion = GbrEmpresa.Direccion, Descripcion_Actividad = GbrEmpresa.Descripcion_Actividad, Email = GbrEmpresa.Email, }; ServiceClient.EliminarParametros(); var result = ServiceClient.RealizarPeticionesPostJsonRestFul <EDEmpresas>(urlServicioEmpresas, CapacidadGuardarEmpresa, empresaEvaluar); if (result != null) { using (SG_SSTContext datos = new SG_SSTContext()) { var empresa = new EDEmpresas(); sede.SedeMunicipios = new List <SedeMunicipio>(); sede.SedeMunicipios.Add(sedeMunicipio); sede.Nombre_Sede = "Principal"; bool respuestaGuardado = rolPorResponsabilidadServicio.CrearRolYResponsabilidadesPreestablecidos(result.Id_Empresa); ViewBag.respuestaGuardado = respuestaGuardado; var busca = datos.Tbl_Empresa.Where(e => e.Pk_Id_Empresa > 0 & e.Pk_Id_Empresa == usuarioActual.IdEmpresa); ViewBag.mensaje = "Empresa " + GbrEmpresa.Razon_Social + " Almacenada Correctamente."; return(View("Index", busca.ToList())); } } else { using (SG_SSTContext datos = new SG_SSTContext()) { var busca = datos.Tbl_Empresa.Where(e => e.Pk_Id_Empresa > 0 & e.Pk_Id_Empresa == usuarioActual.IdEmpresa); ViewBag.mensaje1 = "El Registro no se pudo Realizar."; return(View("Index", busca.ToList())); } } } } else { using (SG_SSTContext datos = new SG_SSTContext()) { var busca = datos.Tbl_Empresa.Where(e => e.Pk_Id_Empresa > 0 & e.Pk_Id_Empresa == usuarioActual.IdEmpresa); ViewBag.mensaje1 = "Alerta: Se presento un error en la transacción."; return(View("Index", busca.ToList())); } } return(View("Index")); }
/// <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 bool GuardarEmpresa(Empresa Empresas, Sede sede, SedeMunicipio sedemunicipio) { return(er.GuardarEmpresa(Empresas, sede, sedemunicipio)); }