/// <summary> /// Crear un nuevo lote en AlamcenInventarioLote /// </summary> private void CrearNuevoLote() { try { AlmacenInventarioLoteInfo almacenInventarioLote = null; int usuarioId = AuxConfiguracion.ObtenerUsuarioLogueado(); var almacenInventarioLotePl = new AlmacenInventarioLotePL(); var almacenInventarioPl = new AlmacenInventarioPL(); var almacenInventario = new AlmacenInventarioInfo { AlmacenID = Contexto.AlmacenDestino.AlmacenID, ProductoID = Contexto.ProductoDestino.ProductoId }; almacenInventario = almacenInventarioPl.ObtenerPorAlmacenIdProductoId(almacenInventario); // Si el producto no se encuentra en el almacen inventario, lo insertamos if (almacenInventario == null) { almacenInventario = new AlmacenInventarioInfo { AlmacenInventarioID = almacenInventarioPl.Crear(new AlmacenInventarioInfo { AlmacenID = Contexto.AlmacenDestino.AlmacenID, ProductoID = Contexto.ProductoDestino.ProductoId, UsuarioCreacionID = usuarioId }), AlmacenID = Contexto.AlmacenDestino.AlmacenID }; } int loteIdCreado = almacenInventarioLotePl.Crear(new AlmacenInventarioLoteInfo { AlmacenInventarioLoteId = 0, AlmacenInventario = new AlmacenInventarioInfo { AlmacenInventarioID = almacenInventario.AlmacenInventarioID }, Cantidad = 0, PrecioPromedio = 0, Piezas = 0, Importe = 0, Activo = EstatusEnum.Activo, UsuarioCreacionId = usuarioId, }, new AlmacenInventarioInfo { AlmacenID = almacenInventario.AlmacenID, ProductoID = Contexto.ProductoDestino.ProductoId }); almacenInventarioLote = almacenInventarioLotePl.ObtenerAlmacenInventarioLotePorId(loteIdCreado); Contexto.LoteMpDestino = almacenInventarioLote; skAyudaLoteMPDestino.IsEnabled = false; } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_ErrorCrearLote, MessageBoxButton.OK, MessageImage.Error); } }
public static AlmacenInventarioLoteInfo ObtenerNuevoLoteMateriaPrima(int productoId, string tipoalmacen) { try { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = 0, usuarioId = 0, tipoAlmacen = 0; AlmacenInventarioLoteInfo almacenInventarioLote = null; if (seguridad != null) { organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; usuarioId = seguridad.Usuario.UsuarioID; } switch (tipoalmacen) { case "rbLoteAlmacen": tipoAlmacen = (int)TipoAlmacenEnum.MateriasPrimas; break; case "rbLoteProceso": tipoAlmacen = (int)TipoAlmacenEnum.PlantaDeAlimentos; break; case "rbBodegaExterna": tipoAlmacen = (int)TipoAlmacenEnum.BodegaExterna; break; } var almacenInventarioLotePl = new AlmacenInventarioLotePL(); var almacenPl = new AlmacenPL(); var almacenInventarioPl = new AlmacenInventarioPL(); var almacenInventario = almacenPl.ObtenerAlmacenInventarioPorOrganizacionTipoAlmacen(new ParametrosOrganizacionTipoAlmacenProductoActivo { OrganizacionId = organizacionId, TipoAlmacenId = tipoAlmacen, Activo = (int)EstatusEnum.Activo, ProductoId = productoId }); // Si el producto no se encuentra en el almacen inventario, lo insertamos if (almacenInventario == null) { var listaAlmacenOrganizacion = almacenPl.ObtenerAlmacenPorOrganizacion(organizacionId); if (listaAlmacenOrganizacion != null) { // Obtenemos el almacen y validamos que sea del mismo tipo Almacen foreach (AlmacenInfo almacenInfo in listaAlmacenOrganizacion) { // Aqui se valida que el almacen sea del tipo seleccionado en pantalla if (almacenInfo.TipoAlmacen.TipoAlmacenID == tipoAlmacen) { almacenInventario = new AlmacenInventarioInfo { AlmacenInventarioID = almacenInventarioPl.Crear(new AlmacenInventarioInfo { AlmacenID = almacenInfo.AlmacenID, ProductoID = productoId, UsuarioCreacionID = usuarioId }), AlmacenID = almacenInfo.AlmacenID }; break; } } } } if (almacenInventario != null) { int loteIdCreado = almacenInventarioLotePl.Crear(new AlmacenInventarioLoteInfo { AlmacenInventarioLoteId = 0, AlmacenInventario = new AlmacenInventarioInfo { AlmacenInventarioID = almacenInventario.AlmacenInventarioID }, Cantidad = 0, PrecioPromedio = 0, Piezas = 0, Importe = 0, Activo = EstatusEnum.Activo, UsuarioCreacionId = usuarioId, }, new AlmacenInventarioInfo { AlmacenID = almacenInventario.AlmacenID, ProductoID = productoId }); almacenInventarioLote = almacenInventarioLotePl.ObtenerAlmacenInventarioLotePorId(loteIdCreado); } return(almacenInventarioLote); } catch (Exception ex) { Logger.Error(ex); throw new SystemException(ex.Message); } }