Ejemplo n.º 1
0
        public static bool UpdateTrilogia(int codmedico, int codldv, int codapm, int codespecialidadvisita,
                                          int codciclo, string turno, int categoria, string semanas, string productos,
                                          int codtrilogia)
        {
            try
            {
                _trilogia = NHArtemisa.GetEntity<Domain.Trilogia>(codtrilogia);
                if (_trilogia != null)
                {
                    _trilogia.Turno = NHArtemisa.GetEntity<Turno>(turno);
                    _trilogia.Categoria = NHArtemisa.GetEntity<Categoria>(categoria);
                    _trilogia.LugaresDeVisita = NHArtemisa.GetEntity<LugaresDeVisita>(codldv);
                    _trilogia.FechaBaja = DateTime.Now;
                    //TrilogiaDb.Update(_trilogia);
                }

                HttpContext.Current.Session.Remove("medico");
                HttpContext.Current.Session.Remove("trilogia");

                return true;
            }
            catch (Exception ex)
            {
                Global.Log.Error(ex.Message, ex);
                return false;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Proceso que de alta y baja a una trilogia cambiando solo su Lugar de Visita
        /// </summary>
        /// <param name="trilogiaActual">Trilogia Actual</param>
        /// <param name="nuevoLdv">Codigo del Nuevo LDV</param>
        /// <param name="codTrilogia"> </param>
        public static void UpDown(int nuevoLdv, int codTrilogia)
        {
            Domain.Trilogia trilogiaNueva;

            List<ArtCambiosDetalle> cambioDetalles = null;

            using (var session = Global.SessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    try
                    {
                        var trilogiaActual = session.Get<Domain.Trilogia>(codTrilogia);
                        NHibernateUtil.GetClass(trilogiaActual.LugaresDeVisita);
                        cambioDetalles = new List<ArtCambiosDetalle>();
                        var ldvNuevo = session.Get<LugaresDeVisita>(nuevoLdv);
                        cambioDetalles.Add(new ArtCambiosDetalle { NombreCampo = "Lugar de Visita", ValorAnterior = trilogiaActual.LugaresDeVisita.NombreLugar, ValorActual = ldvNuevo.NombreLugar });

                        trilogiaNueva = new Domain.Trilogia
                                            {
                                                Apm = trilogiaActual.Apm,
                                                Medico = trilogiaActual.Medico,
                                                CodOperadorAlta = trilogiaActual.CodOperadorAlta,
                                                Download = trilogiaActual.Download,
                                                Especialidad = trilogiaActual.Especialidad,
                                                Categoria = trilogiaActual.Categoria,
                                                Turno = trilogiaActual.Turno,
                                                Action = "A",
                                                CodTrilogia = 0,
                                                LugaresDeVisita = ldvNuevo,
                                                FechaAlta = DateTime.Now
                                            };

                        trilogiaActual.Action = "E";
                        trilogiaActual.MotivosBaja = session.Get<MotivosBaja>(1);
                        trilogiaActual.FechaBaja = DateTime.Now;

                        session.Save(trilogiaNueva);
                        session.Update(trilogiaActual);
                        var rutaActual = session.Get<TrilogiaRuta>(trilogiaActual.CodTrilogia);

                        if (rutaActual != null)
                        {
                            var rutaNueva = new TrilogiaRuta(trilogiaNueva);
                            rutaNueva.Action = "A";
                            rutaNueva.Download = DateTime.Now;
                            rutaNueva.Rutas = rutaActual.Rutas;
                            rutaActual.Action = "E";
                            session.Update(rutaActual);
                            session.Save(rutaNueva);
                        }

                        transaction.Commit();

                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }

                }
            }

            Mensaje.SendAlert(TipoEntidad, trilogiaNueva.CodTrilogia, "Cambio de LDV", Estatus.GetEstatusInicial(tipoEntidad: TrilogiasRepository.TipoEntidad, accion: "L", rolId: Global.Usuario.ArtSeguridadRol.SeguridadRolId), detalles: cambioDetalles);
        }
Ejemplo n.º 3
0
        public static void Save(int codmedico, int codldv, int codapm, int codespecialidadvisita,
                                string turno, int categoria, string semanas, string productosObjetivos,
                                string productosDirigidos)
        {
            Domain.Trilogia trilogia;
            var troncal = false;
            var sendAlert = false;

            using (var session = Global.SessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    try
                    {
                        trilogia = session.QueryOver<Domain.Trilogia>()
                            .Where(
                                t =>
                                t.Medico.CodMedico == codmedico && t.LugaresDeVisita.CodLdv == codldv &&
                                t.Apm.CodApm == codapm).SingleOrDefault();
                        if (trilogia == null)
                        {
                            troncal =
                                session.QueryOver<ViewLdv>().Where(l => l.CodLDV == codldv).SingleOrDefault<ViewLdv>().
                                    Troncal;
                            trilogia = new Domain.Trilogia
                            {
                                Action = "N",
                                Apm = session.Get<Apm>(codapm),
                                Medico = session.Get<Medico>(codmedico),
                                LugaresDeVisita = session.Get<LugaresDeVisita>(codldv),
                                Categoria = session.Get<Categoria>(categoria),
                                Turno = session.Get<Turno>(turno),
                                CodOperadorAlta = Global.Usuario.NombreUsuario,
                                Download = DateTime.Now,
                                Especialidad = session.Get<Especialidad>(codespecialidadvisita),
                                FechaAlta = DateTime.Now
                            };
                            session.Save(trilogia);
                            transaction.Commit();
                            sendAlert = true;
                        }
                        else
                        {
                            TrilogiasRepository.Update(codespecialidadvisita, turno, categoria, semanas,
                                                       productosObjetivos, trilogia.CodTrilogia);
                            sendAlert = false;
                        }

                    }
                    catch (Exception ex)
                    {
                        Global.Log.Error(ex.Message, ex);
                        transaction.Rollback();
                        throw;
                    }
                }
            }

            //Si es no es troncal añadir los Productos Objetivos
            if (!troncal)
                ProductosObejtivoRepository.Save(productosObjetivos, trilogia);

            //Añadir las rutas
            TrilogiaRutasRepository.Save(semanas, trilogia);

            //Añadir los productos dirigidos
            ProductosObejtivoRepository.Save(productosDirigidos, trilogia);

            //Guardar los cambios
            if (sendAlert)
                CambiosRepository.Save(tipoEntidad: TrilogiasRepository.TipoEntidad, codEntidad: trilogia.CodTrilogia, accion: trilogia.Action,
                                      fechaSolicitud: DateTime.Now, status: Estatus.GetEstatusInicial(TrilogiasRepository.TipoEntidad, trilogia.Action, Global.Usuario.ArtSeguridadRol.SeguridadRolId), solicitadoPor: Global.Usuario.SeguridadUsuarioId, aprobadoPor: null,
                                      fechaAprobacion: null, cambiosDetalles: null);
        }