示例#1
0
 public static long ObtenerUltimoId(SinabEntities db, SAB_ALM_MOVIMIENTOS movimiento)
 {
     return(db.SAB_ALM_MOVIMIENTOS.Where(mv => mv.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO &&
                                         mv.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION)
            .DefaultIfEmpty()
            .Max(mv => mv == null?0: mv.IDMOVIMIENTO));
 }
示例#2
0
        private static string SetEstablecimiento(SinabEntities db, SAB_ALM_MOVIMIENTOS m)
        {
            var res = string.Empty;

            if (m.ID_LUGAR_ENTREGA_HOSPITAL == null && m.IDALMACENDESTINO == null)
            {
                var dato = db.SAB_CAT_ESTABLECIMIENTOS.FirstOrDefault(mov => mov.IDESTABLECIMIENTO == m.IDESTABLECIMIENTODESTINO);
                if (dato != null)
                {
                    return(dato.NOMBRE);
                }
            }
            else if (m.IDALMACENDESTINO == null)
            {
                return(m.SAB_CAT_LUGARES_ENTREGA_HOSPITALES.NOMBRE_LUGAR_ENTREGA_HOSPITAL);
            }
            else
            {
                var dato2 = db.SAB_CAT_ALMACENES.FirstOrDefault(al => al.IDALMACEN == m.IDALMACENDESTINO);
                if (dato2 != null)
                {
                    return(dato2.NOMBRE);
                }
            }

            return(res);
        }
示例#3
0
 public static SAB_ALM_VALESSALIDA Obtener(SAB_ALM_MOVIMIENTOS movimiento)
 {
     using (var db = new SinabEntities())
     {
         try
         {
             return(db.SAB_ALM_VALESSALIDA.FirstOrDefault(vs => vs.IDVALE == movimiento.IDDOCUMENTO && vs.IDALMACEN == movimiento.IDALMACEN && vs.ANIO == movimiento.ANIO));
         }
         catch (Exception ex) { throw ex; }
     }
 }
示例#4
0
        /// <summary>
        /// Prepara la datacontext para eliminar el movimiento seleccionado
        /// Esta funcion no guarda el resultado en la db
        /// </summary>
        /// <param name="db">Datacontext</param>
        /// <param name="movimiento">Movimiento a borrar</param>
        public static void Eliminar(SinabEntities db, SAB_ALM_MOVIMIENTOS movimiento)
        {
            var mv = db.SAB_ALM_MOVIMIENTOS.FirstOrDefault(m => m.IDMOVIMIENTO == movimiento.IDMOVIMIENTO &&
                                                           m.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION &&
                                                           m.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO);

            if (mv != null)
            {
                db.SAB_ALM_MOVIMIENTOS.DeleteObject(mv);
            }
        }
示例#5
0
        /// <summary>
        /// Guardar una instancia de movimiento en la base de datos
        /// </summary>
        /// <param name="movimiento">Instancia a agregar</param>
        /// <param name="db">Datacontext</param>
        public static void Guardar(SinabEntities db, SAB_ALM_MOVIMIENTOS movimiento)
        {
            /*
             *  lastId = db.SAB_ALM_VALESSALIDA.Where(vs => vs.IDALMACEN == vale.IDALMACEN && vs.ANIO == vale.ANIO).DefaultIfEmpty().Max(vs => vs == null ?0: vs.IDVALE);
             */
            var lastId = ObtenerUltimoId(db, movimiento);

            movimiento.IDMOVIMIENTO = lastId + 1;
            db.SAB_ALM_MOVIMIENTOS.AddObject(movimiento);
            db.SaveChanges();
        }
示例#6
0
 /// <summary>
 /// Obtiene el movimiento comparando
 /// </summary>
 /// <param name="movimiento">Entidad a comparar</param>
 /// <returns>El movimiento que cumple las condiciones</returns>
 /// <remarks>MINSAL_DEV 21/05/2013</remarks>
 public static SAB_ALM_MOVIMIENTOS Obtener(SAB_ALM_MOVIMIENTOS movimiento)
 {
     try
     {
         using (var db = new SinabEntities())
         {
             return(db.SAB_ALM_MOVIMIENTOS.FirstOrDefault(mv => mv.IDMOVIMIENTO == movimiento.IDMOVIMIENTO &&
                                                          mv.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION &&
                                                          mv.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO));
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#7
0
        public static void Anular(SinabEntities db, SAB_ALM_MOVIMIENTOS movimiento)
        {
            var mv = db.SAB_ALM_MOVIMIENTOS.FirstOrDefault(m => m.IDMOVIMIENTO == movimiento.IDMOVIMIENTO &&
                                                           m.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION &&
                                                           m.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO);

            if (mv == null)
            {
                return;
            }
            mv.ANULADO  = true;
            mv.IDESTADO = 3; //anulado
            mv.AUUSUARIOMODIFICACION = Membresia.ObtenerUsuario().USUARIO;
            mv.AUFECHAMODIFICACION   = DateTime.Now;
            db.SaveChanges();
        }
示例#8
0
        /// <summary>
        /// Elimina todo detalle de las tablas de DetalleMovimiento que concuerden con el movimiento parametrizado.
        /// </summary>
        /// <param name="db">Datacontext</param>
        /// <param name="movimiento">Movimiento del cual se borraran los detales</param>
        /// /// <history> SINAB_DEV 22/07/2013</history>
        public static void EliminarTodos(SinabEntities db, SAB_ALM_MOVIMIENTOS movimiento)
        {
            var res = db.SAB_ALM_DETALLEMOVIMIENTOS.Where(d => d.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO &&
                                                          d.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION &&
                                                          d.IDMOVIMIENTO == movimiento.IDMOVIMIENTO);

            if (!res.Any())
            {
                return;
            }
            foreach (var dm in res)
            {
                db.SAB_ALM_DETALLEMOVIMIENTOS.DeleteObject(dm);
            }
            db.SaveChanges();
        }
示例#9
0
        /// <summary>
        /// Actualiza o crea un movimiento
        /// </summary>
        /// <param name="movimiento">Entidad tipo MOVIMIENTO fuente de datos</param>
        /// <remarks>MINSAL_DEV 21/05/2013</remarks>
        public static void Actualizar(SAB_ALM_MOVIMIENTOS movimiento)
        {
            using (var db = new SinabEntities())
            {
                var currentMove = Obtener(movimiento, db);
                if (currentMove != null)     //si ya existe
                {
                    currentMove.IDTIPODOCREF = movimiento.IDTIPODOCREF;
                    currentMove.NUMERODOCREF = movimiento.NUMERODOCREF;
                    if (movimiento.IDALMACEN != null || movimiento.IDALMACEN > 0)
                    {
                        currentMove.IDALMACEN = movimiento.IDALMACEN;
                    }
                    currentMove.ANIO                       = movimiento.ANIO;
                    currentMove.IDDOCUMENTO                = movimiento.IDDOCUMENTO;
                    currentMove.IDESTADO                   = movimiento.IDESTADO;
                    currentMove.IDUNIDADSOLICITA           = movimiento.IDUNIDADSOLICITA;
                    currentMove.TOTALMOVIMIENTO            = movimiento.TOTALMOVIMIENTO;
                    currentMove.IDEMPLEADOSOLICITA         = movimiento.IDEMPLEADOSOLICITA;
                    currentMove.IDEMPLEADOAUTORIZA         = movimiento.IDEMPLEADOAUTORIZA;
                    currentMove.IDEMPLEADOALMACEN          = movimiento.IDEMPLEADOALMACEN;
                    currentMove.IDEMPLEADODESPACHA         = movimiento.IDEMPLEADODESPACHA;
                    currentMove.IDEMPLEADORECIBE           = movimiento.IDEMPLEADORECIBE;
                    currentMove.IDEMPLEADOPREPARA          = movimiento.IDEMPLEADOPREPARA;
                    currentMove.IDEMPLEADOENVIADO          = movimiento.IDEMPLEADOENVIADO;
                    currentMove.CLASIFICACIONMOVIMIENTO    = movimiento.CLASIFICACIONMOVIMIENTO;
                    currentMove.SUBCLASIFICACIONMOVIMIENTO = movimiento.SUBCLASIFICACIONMOVIMIENTO;
                    currentMove.RESPONSABLEDISTRIBUCION    = movimiento.RESPONSABLEDISTRIBUCION;
                    currentMove.MOTIVO                     = movimiento.MOTIVO;
                    currentMove.ESTASINCRONIZADA           = movimiento.ESTASINCRONIZADA;
                    currentMove.FECHAMOVIMIENTO            = movimiento.FECHAMOVIMIENTO;
                    currentMove.IDESTABLECIMIENTODESTINO   = movimiento.IDESTABLECIMIENTODESTINO;
                    currentMove.IDALMACENDESTINO           = movimiento.IDALMACENDESTINO == 0?null:movimiento.IDALMACENDESTINO;
                    currentMove.ID_LUGAR_ENTREGA_HOSPITAL  = movimiento.ID_LUGAR_ENTREGA_HOSPITAL;
                    currentMove.AUUSUARIOMODIFICACION      = movimiento.AUUSUARIOMODIFICACION;
                    currentMove.AUFECHAMODIFICACION        = movimiento.AUFECHAMODIFICACION;
                    currentMove.EMPLEADOALMACEN            = movimiento.EMPLEADOALMACEN;
                    currentMove.EMPLEADOPREPARA            = movimiento.EMPLEADOPREPARA;

                    db.SaveChanges();
                }
                else     // si no existe se crea
                {
                    Guardar(db, movimiento);
                }
            }
        }
示例#10
0
        public static void AgregarTransaccion(SAB_ALM_MOVIMIENTOS movimiento, bool esFarmacia)
        {
            using (var db = new SinabEntities())
            {
                using (var ts = new TransactionScope())
                {
                    try
                    {
                        var dsDetallesMovientoVale = db.DetalleMovimientosValeSalida(
                            movimiento.IDESTABLECIMIENTO,
                            Convert.ToInt32(movimiento.IDMOVIMIENTO),
                            movimiento.IDTIPOTRANSACCION,
                            esFarmacia
                            ).ToList();

                        var primerDetalle = dsDetallesMovientoVale.FirstOrDefault();

                        var usuarioRegistra =
                            db.SAB_CAT_EMPLEADOS.FirstOrDefault(ur => ur.NOMBRECORTO == movimiento.AUUSUARIOCREACION);
                        var usuarioModifica =
                            db.SAB_CAT_EMPLEADOS.FirstOrDefault(ur => ur.NOMBRECORTO == movimiento.AUUSUARIOMODIFICACION);

                        var empleado = Membresia.ObtenerUsuario();

                        if (primerDetalle.IDSUMINISTRO != 1 || !esFarmacia)
                        {
                            return;
                        }


                        var transaccion = new SAB_FARM_TRANSACION()
                        {
                            NumeroVale        = primerDetalle.NUMEROVALE,
                            IdEstablecimiento =
                                usuarioRegistra != null
                                                      ? usuarioRegistra.IDESTABLECIMIENTO ?? 0
                                                      : empleado.Establecimiento.IDESTABLECIMIENTO,
                            IdEstado =
                                Convert.ToChar(EnumHelpers.RequisicionEstados.Enviado).ToString(),
                            IdUsuarioReg =
                                usuarioRegistra != null
                                                      ? usuarioRegistra.IDEMPLEADO
                                                      : empleado.IDEMPLEADO,
                            IdUsuarioMod =
                                usuarioModifica != null
                                                      ? usuarioModifica.IDEMPLEADO
                                                      : empleado.IDEMPLEADO,
                            FechaHoraMod = primerDetalle.AUFECHAMODIFICACION ?? DateTime.Now,
                            FechaHoraReg = primerDetalle.AUFECHACREACION.Value,
                        };

                        db.SAB_FARM_TRANSACION.AddObject(transaccion);
                        db.SaveChanges();

                        foreach (var newex in dsDetallesMovientoVale.Select(t => new SAB_FARM_EXISTENCIA()
                        {
                            IdTrans = transaccion.IdTrans,
                            Codigo = t.Codigo,
                            Cantidad =
                                (double)(t.Cantidad ?? 0),
                            Lote = t.Lote,
                            Precio = (double)(t.Precio ?? 0),
                            FechaVencimiento =
                                t.FECHAVENCIMIENTO,
                            FuenteFinanciamiento =
                                t.FuenteFinanciamiento,
                            FechaHoraReg =
                                t.AUFECHACREACION.Value,
                            FechaHoraMod =
                                t.AUFECHAMODIFICACION,
                            IdUsuarioMod =
                                usuarioModifica.IDEMPLEADO,
                            IdUsuarioReg =
                                usuarioRegistra.IDEMPLEADO
                        }))
                        {
                            db.SAB_FARM_EXISTENCIA.AddObject(newex);
                        }
                        db.SaveChanges();
                        ts.Complete();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
            }
        }
示例#11
0
 public static SAB_ALM_MOVIMIENTOS Obtener(SAB_ALM_MOVIMIENTOS movimiento, SinabEntities db)
 {
     return(db.SAB_ALM_MOVIMIENTOS.FirstOrDefault(mv => mv.IDMOVIMIENTO == movimiento.IDMOVIMIENTO &&
                                                  mv.IDTIPOTRANSACCION == movimiento.IDTIPOTRANSACCION &&
                                                  mv.IDESTABLECIMIENTO == movimiento.IDESTABLECIMIENTO));
 }