public RetieneContainer DataRetencion(int id) { RetieneContainer salida = new RetieneContainer(); salida.Retencion = RetencionDataAccess.ObtenerPorID(id); salida.Empresa = EmpresaDataAccess.ObtenerPorID(salida.Retencion.empresa_id); salida.Gestiones = GestionretencionDataAccess.ObtenerEntidades().FindAll(g => g.retencion_id == id); salida.UltimaGestion = GestionretencionDataAccess.ObtenerEntidades().FindAll(g => g.retencion_id == id).OrderByDescending(d => d.gstr_fecha_accion).FirstOrDefault(); List <AmbitosContainer <AmbitosretencionEntity> > ambits = new List <AmbitosContainer <AmbitosretencionEntity> >(); AmbitosretencionDataAccess.ObtenerEntidades().FindAll(d => d.retencion_id == salida.Retencion.ret_id).ForEach(amf => { AmbitosContainer <AmbitosretencionEntity> saf = new AmbitosContainer <AmbitosretencionEntity>(); saf.AmbitoFinal = amf; saf.AmbitoArea = AmbitosareaDataAccess.ObtenerPorID(amf.ambito_id); saf.Area = AreasDataAccess.ObtenerPorID(saf.AmbitoArea.area_id); ambits.Add(saf); }); salida.Ambitos = ambits; return(salida); }
public ResultadoBase GuardarRetencion(Retiene entrada) { try { string token = ActionContext.Request.Headers.GetValues("Token").First(); int _uid = Security.Data.TokenDataAccess.Obtener(token).FirstOrDefault().UserId; string _rut = Security.Data.UsuarioDataAccess.UsuarioData(_uid).RutUsuario; CookieHeaderValue cookie = Request.Headers.GetCookies("Oficina").FirstOrDefault(); int codOficina = Convert.ToInt32(cookie.Cookies.FirstOrDefault(s => s.Name == "Oficina").Value); EmpresaEntity em = EmpresaDataAccess.ObtenerEntidades().Find(emp => emp.emp_rut == entrada.Rut.Replace(".", "")); if (em == null) { em = new EmpresaEntity(); em.emp_rut = entrada.Rut.Replace(".", ""); em.emp_nombre = entrada.Nombre; em.emp_holding = entrada.Holding; em.emp_id = EmpresaDataAccess.Guardar(em); } RetencionEntity rt = RetencionDataAccess.ObtenerPorID(entrada.IdRetencion); if (rt.ret_id == 0) { rt.empresa_id = em.emp_id; rt.ret_caja_destino = entrada.CajaDestino; rt.ret_dotacion = Convert.ToInt32(entrada.Dotacion); rt.ret_estamento = entrada.Estamento; rt.ret_segmento = entrada.Segmento; rt.ejecutivo_rut = _rut; rt.oficina = codOficina; rt.ret_id = RetencionDataAccess.Guardar(rt); //Primera Gestion solo si es nuevo GestionretencionEntity gst = new GestionretencionEntity(); gst.gstr_etapa = "Estudio Cajas"; gst.gstr_fecha = DateTime.Now; gst.gstr_fecha_accion = DateTime.Now; gst.gstr_observaciones = "SISTEMA Gestion Inicial"; gst.retencion_id = rt.ret_id; gst.ejecutivo_rut = _rut; gst.oficina = codOficina; GestionretencionDataAccess.Guardar(gst); } if (entrada.Ambitos.Count > 0) { AmbitosretencionDataAccess.EliminarByRetencion(rt.ret_id); entrada.Ambitos.ForEach(amb => { AmbitosretencionEntity _amb = new AmbitosretencionEntity(); _amb.ambito_id = Convert.ToInt32(amb.valor); _amb.retencion_id = rt.ret_id; AmbitosretencionDataAccess.Guardar(_amb); }); } return(new ResultadoBase() { Estado = "OK", Mensaje = "Retención Almacenada con Éxito", Objeto = entrada }); } catch (Exception ex) { throw new Exception("Error al Guardar Retencion", ex); } }
public BootstrapTableResult <RetieneContainer> ListadoRetencion(string sort = "Empresa.emp_rut", string order = "asc", int limit = 30, int offset = 0, string search = "") { CookieHeaderValue cookie = Request.Headers.GetCookies("Oficina").FirstOrDefault(); int codOficina = Convert.ToInt32(cookie.Cookies.FirstOrDefault(s => s.Name == "Oficina").Value); List <RetieneContainer> salida = new List <RetieneContainer>(); BootstrapTableResult <RetieneContainer> salida_final = new BootstrapTableResult <RetieneContainer>(); RetencionDataAccess.ObtenerEntidades().FindAll(x => x.oficina == codOficina).ForEach(ret => { RetieneContainer container = new RetieneContainer(); container.Retencion = ret; container.Gestiones = GestionretencionDataAccess.ObtenerEntidades().FindAll(g => g.retencion_id == ret.ret_id); container.UltimaGestion = GestionretencionDataAccess.ObtenerEntidades().FindAll(g => g.retencion_id == ret.ret_id).OrderByDescending(d => d.gstr_fecha_accion).FirstOrDefault(); container.Empresa = EmpresaDataAccess.ObtenerPorID(ret.empresa_id); List <AmbitosContainer <AmbitosretencionEntity> > ambits = new List <AmbitosContainer <AmbitosretencionEntity> >(); AmbitosretencionDataAccess.ObtenerEntidades().FindAll(d => d.retencion_id == ret.ret_id).ForEach(amf => { AmbitosContainer <AmbitosretencionEntity> saf = new AmbitosContainer <AmbitosretencionEntity>(); saf.AmbitoFinal = amf; saf.AmbitoArea = AmbitosareaDataAccess.ObtenerPorID(amf.ambito_id); saf.Area = AreasDataAccess.ObtenerPorID(saf.AmbitoArea.area_id); ambits.Add(saf); }); container.Ambitos = ambits; salida.Add(container); }); if (!string.IsNullOrEmpty(search)) { salida = salida.FindAll(s => s.Empresa.emp_nombre.ToLower().Contains(search.ToLower()) || s.Empresa.emp_rut.ToLower().Contains(search.ToLower().Replace(".", "")) || s.Empresa.emp_holding.ToLower().Contains(search.ToLower()) ).ToList(); } switch (order) { case "asc": switch (sort) { case "Empresa.emp_rut": salida = salida.OrderBy(o => o.Empresa.emp_rut).ToList(); break; case "Empresa.emp_nombre": salida = salida.OrderBy(o => o.Empresa.emp_nombre).ToList(); break; case "Empresa.emp_holding": salida = salida.OrderBy(o => o.Empresa.emp_holding).ToList(); break; case "Retencion.ret_estamento": salida = salida.OrderBy(o => o.Retencion.ret_estamento).ToList(); break; case "Retencion.ret_caja_destino": salida = salida.OrderBy(o => o.Retencion.ret_caja_destino).ToList(); break; } break; case "desc": switch (sort) { case "Empresa.emp_rut": salida = salida.OrderByDescending(o => o.Empresa.emp_rut).ToList(); break; case "Empresa.emp_nombre": salida = salida.OrderByDescending(o => o.Empresa.emp_nombre).ToList(); break; case "Empresa.emp_holding": salida = salida.OrderByDescending(o => o.Empresa.emp_holding).ToList(); break; case "Retencion.ret_estamento": salida = salida.OrderByDescending(o => o.Retencion.ret_estamento).ToList(); break; case "Retencion.ret_caja_destino": salida = salida.OrderByDescending(o => o.Retencion.ret_caja_destino).ToList(); break; } break; } salida_final.total = salida.Count; salida_final.rows = salida.Skip(offset).Take(limit).ToList(); return(salida_final); }