public FidelizaContainer DataFidelizacion(int id) { FidelizaContainer salida = new FidelizaContainer(); salida.Fidelizacion = FidelizacionDataAccess.ObtenerPorID(id); salida.Representante = RepresentanteempresaDataAccess.ObtenerPorID(salida.Fidelizacion.representante_id); salida.Empresa = EmpresaDataAccess.ObtenerPorID(salida.Representante.emp_id); salida.ResultadoGestion = ResultadogestionDataAccess.ObtenerEntidades().FindAll(d => d.fidelizacion_id == salida.Fidelizacion.fide_id); List <AmbitosContainer <AmbitosfidelizacionEntity> > ambits = new List <AmbitosContainer <AmbitosfidelizacionEntity> >(); AmbitosfidelizacionDataAccess.ObtenerEntidades().FindAll(d => d.fidelizacion_id == salida.Fidelizacion.fide_id).ForEach(amf => { AmbitosContainer <AmbitosfidelizacionEntity> saf = new AmbitosContainer <AmbitosfidelizacionEntity>(); 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 GuardarFidelizacion(Fideliza 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); } RepresentanteempresaEntity rep = RepresentanteempresaDataAccess.ObtenerPorID(entrada.IdRepresentante); if (rep == null) { rep = new RepresentanteempresaEntity(); } rep.emp_id = em.emp_id; rep.rep_nombre = entrada.NombreRepresentante; rep.rep_cargo = entrada.CargoRepresentante; rep.rep_id = RepresentanteempresaDataAccess.Guardar(rep); FidelizacionEntity fd = FidelizacionDataAccess.ObtenerPorID(entrada.IdFidelizacion); if (fd == null) { fd = new FidelizacionEntity(); } fd.fide_actividad = entrada.Actividad; fd.fide_cobertura = entrada.Cobertura; fd.fide_estamento = entrada.Estamento; fd.fide_fecha_calendario = Convert.ToDateTime(entrada.FechaFidelizacion); fd.fide_fecha_accion = DateTime.Now; fd.representante_id = rep.rep_id; fd.cod_oficina = codOficina; fd.rut_ejecutivo = _rut; fd.fide_id = FidelizacionDataAccess.Guardar(fd); if (entrada.Ambitos.Count > 0) { AmbitosfidelizacionDataAccess.EliminarByFidelizacion(fd.fide_id); entrada.Ambitos.ForEach(amb => { AmbitosfidelizacionEntity _amb = new AmbitosfidelizacionEntity(); _amb.ambito_id = Convert.ToInt32(amb.valor); _amb.fidelizacion_id = fd.fide_id; AmbitosfidelizacionDataAccess.Guardar(_amb); }); } if (entrada.ResultadosGestion.Count > 0) { ResultadogestionDataAccess.EliminarByFidelizacion(fd.fide_id); entrada.ResultadosGestion.ForEach(rges => { ResultadogestionEntity _resg = new ResultadogestionEntity(); _resg.fidelizacion_id = fd.fide_id; _resg.resg_comentarios = rges.contenido; _resg.resg_fecha = Convert.ToDateTime(rges.fecha + " 00:00:00"); _resg.resg_tipo = rges.tipo; ResultadogestionDataAccess.Guardar(_resg); }); } return(new ResultadoBase() { Estado = "OK", Mensaje = "Fidelización Almacenada con Éxito", Objeto = entrada }); } catch (Exception ex) { throw new Exception("Error al Guardar Fidelización", ex); } }