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)); }
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); }
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; } } }
/// <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); } }
/// <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(); }
/// <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; } }
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(); }
/// <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(); }
/// <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); } } }
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); } } } }
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)); }