public static IList <AlmacenInventarioInfo> ObtenerProductosPorAlmacen(int idAlmacen) { IList <AlmacenInventarioInfo> listaAlmacenInventario = null; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; if (seguridad != null) { var almacenInventarioPl = new AlmacenInventarioPL(); var almacenPl = new AlmacenPL(); AlmacenInfo almacen = almacenPl.ObtenerPorID(idAlmacen); OrganizacionInfo organizacion = seguridad.Usuario.Organizacion; listaAlmacenInventario = almacenInventarioPl.ObtienePorAlmacenIdLlenaProductoInfo(almacen); if (listaAlmacenInventario != null && listaAlmacenInventario.Count > 0) { listaAlmacenInventario = (from productos in listaAlmacenInventario where productos.Producto != null orderby productos.Producto.Descripcion select productos).ToList(); if (almacen.TipoAlmacen.TipoAlmacenID == (int)TipoAlmacenEnum.PlantaDeAlimentos) { listaAlmacenInventario = (from productos in listaAlmacenInventario where productos.Producto.SubFamilia.SubFamiliaID != (int)SubFamiliasEnum.AlimentoFormulado orderby productos.Producto.Descripcion select productos).ToList(); } } } else { throw new ExcepcionServicio("SesionExpirada"); } } catch (ExcepcionServicio ex) { Logger.Error(ex); throw new ExcepcionServicio(ex.Message); } catch (Exception ex) { Logger.Error(ex); throw new Exception(ex.Message); } return(listaAlmacenInventario); }
public static IList <AlmacenInventarioInfo> ObtenerExistencia(IEnumerable <int> idProductos) { IList <ProductoInfo> producto = idProductos.Select(id => new ProductoInfo { ProductoId = id }).ToList(); int organizacionId = Usuario.OrganizacionID; AlmacenInfo almacen = ObtenerAlmacenGenerarl(organizacionId); int almacenId = almacen.AlmacenID; var almacenInventarioBL = new AlmacenInventarioPL(); IList <AlmacenInventarioInfo> result = almacenInventarioBL.ExistenciaPorProductos(almacenId, producto); return(result); }
private void CargarArchivoImportar() { try { var almacenPL = new AlmacenPL(); var almacenInventarioPL = new AlmacenInventarioPL(); var almacenInventarioLotePL = new AlmacenInventarioLotePL(); var productoPL = new ProductoPL(); List <AlmacenInfo> almacenesOrganizacion = almacenPL.ObtenerAlmacenesPorOrganizacion(Contexto.Organizacion.OrganizacionID); List <ProductoInfo> productos = productoPL.ObtenerPorEstados(EstatusEnum.Activo); if (almacenesOrganizacion == null) { SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_SinAlmacenes, MessageBoxButton.OK, MessageImage.Warning); return; } IList <AlmacenInventarioInfo> almacenesInventario = almacenInventarioPL.ObtenerPorAlmacenXML(almacenesOrganizacion) ?? new List <AlmacenInventarioInfo>(); IList <AlmacenInventarioLoteInfo> almacenesInventarioLote = almacenInventarioLotePL.ObtenerLotesPorAlmacenInventarioXML(almacenesInventario.ToList()) ?? new List <AlmacenInventarioLoteInfo>(); var archivoCarga = new FileInfo(Contexto.Ruta); // Open and read the XlSX file. using (var excel = new ExcelPackage(archivoCarga)) { ExcelWorkbook libro = excel.Workbook; if (libro == null || libro.Worksheets.Count == 0) { SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_ArchivoSinDatos, MessageBoxButton.OK, MessageImage.Warning); return; } // Get the first worksheet ExcelWorksheet hojaExcel = libro.Worksheets.First(); if (!hojaExcel.Name.ToUpper().Equals(Properties.Resources.CargaMPPA_NombreHoja.ToUpper(), StringComparison.InvariantCultureIgnoreCase)) { SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_NombreIncorrectoHoja, MessageBoxButton.OK, MessageImage.Warning); return; } if (!ValidarEncabezado(hojaExcel)) { return; } for (int renglon = RenglonEncabezados + 1; renglon <= hojaExcel.Dimension.End.Row; renglon++) { var carga = new CargaMPPAModel(); object columnaVacia = hojaExcel.Cells[renglon, 1].Value; if (columnaVacia == null || string.IsNullOrWhiteSpace(columnaVacia.ToString())) { continue; } #region AsignarPropiedades var propiedades = carga.GetType().GetProperties(); foreach (var propInfo in propiedades) { dynamic customAttributes = carga.GetType().GetProperty(propInfo.Name).GetCustomAttributes(typeof(AtributoCargaMPPA), true); if (customAttributes.Length > 0) { for (var indexAtributos = 0; indexAtributos < customAttributes.Length; indexAtributos++) { var atributos = (AtributoCargaMPPA)customAttributes[indexAtributos]; int celdaArchivo = atributos.Celda; TypeCode tipoDato = atributos.TipoDato; bool aceptaVacio = atributos.AceptaVacio; object dato = hojaExcel.Cells[renglon, celdaArchivo].Value; switch (tipoDato) { case TypeCode.Int32: int valorInt; int.TryParse(dato == null ? "" : dato.ToString(), out valorInt); if (valorInt == 0) { if (aceptaVacio) { propInfo.SetValue(carga, 0, null); } else { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ErrorColumna, renglon, propInfo.Name); break; } } propInfo.SetValue(carga, valorInt, null); break; case TypeCode.Decimal: decimal valorDecimal; decimal.TryParse(dato == null ? "" : dato.ToString(), out valorDecimal); if (valorDecimal == 0) { if (aceptaVacio) { propInfo.SetValue(carga, 0, null); } else { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ErrorColumna, renglon, propInfo.Name); break; } } propInfo.SetValue(carga, valorDecimal, null); break; case TypeCode.DateTime: DateTime valorFecha; DateTime.TryParse(dato == null ? "" : dato.ToString(), out valorFecha); if (valorFecha == DateTime.MinValue) { if (aceptaVacio) { propInfo.SetValue(carga, DateTime.MinValue, null); } else { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ErrorColumna, renglon, propInfo.Name); break; } } propInfo.SetValue(carga, valorFecha, null); break; default: propInfo.SetValue(carga, null, null); break; } } } } #endregion AsignarPropiedades #region Validaciones AlmacenInfo almacenCarga = almacenesOrganizacion.FirstOrDefault(alm => alm.AlmacenID == carga.AlmacenID); ProductoInfo producto = productos.FirstOrDefault(pro => pro.ProductoId == carga.ProductoID); AlmacenInventarioInfo almacenInventario = almacenesInventario.FirstOrDefault( ai => ai.AlmacenID == carga.AlmacenID && ai.ProductoID == carga.ProductoID); if (almacenCarga == null) { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_NoExisteAlmacen, carga.AlmacenID, renglon); } carga.Almacen = almacenCarga; if (producto == null) { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_NoExisteProducto, carga.ProductoID, renglon); } carga.Producto = producto; if (almacenInventario != null && almacenInventario.Cantidad > 0) { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteInventario, carga.ProductoID, carga.AlmacenID, renglon); } carga.AlmacenInventario = almacenInventario; if (carga.AlmacenInventario != null && carga.AlmacenInventario.AlmacenInventarioID > 0) { List <AlmacenInventarioLoteInfo> lotesInventario = almacenesInventarioLote.Where( ail => ail.AlmacenInventario.AlmacenInventarioID == carga.AlmacenInventario.AlmacenInventarioID).ToList(); if (lotesInventario.Any()) { AlmacenInventarioLoteInfo lote = lotesInventario.FirstOrDefault(ail => ail.Lote == carga.Lote); if (lote != null) { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteLote, carga.Lote, carga.AlmacenID, renglon); } } } CargaMPPAModel cargaRepetida = listaInventariosValidos.FirstOrDefault(car => car.ProductoID == carga.ProductoID && car.AlmacenID == carga.AlmacenID && car.Lote == carga.Lote); if (cargaRepetida != null) { carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteRenglonRepetido, renglon); } if (!string.IsNullOrWhiteSpace(carga.MensajeAlerta)) { listaInventariosInvalidos.Add(carga); } else { listaInventariosValidos.Add(carga); } #endregion Validaciones } } if (listaInventariosInvalidos.Any()) { gridDatos.ItemsSource = listaInventariosInvalidos; btnGuardar.IsEnabled = false; SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], string.Format(Properties.Resources.CargaMPPA_RegistroProblemas, listaInventariosInvalidos.Count), MessageBoxButton.OK, MessageImage.Warning); return; } if (listaInventariosValidos.Any()) { SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], string.Format(Properties.Resources.CargaMPPA_RegistroSinProblemas, listaInventariosValidos.Count), MessageBoxButton.OK, MessageImage.Correct); } btnGuardar.IsEnabled = true; } catch (Exception ex) { SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_ErrorValidar, MessageBoxButton.OK, MessageImage.Error); Logger.Error(ex); } }
/// <summary> /// Valida si el stock actual no cubre el envio que se intenta registrar /// </summary> /// <returns>Regresa True si la canidad de envio excede el inventario actual</returns> private bool ValidarSalidaExcede(out string error) { AlmacenInventarioPL almacenInventarioPL = new AlmacenInventarioPL(); AlmacenInventarioInfo inventarioActualizado = almacenInventarioPL.ObtenerPorAlmacenIdProductoId(EnvioAlimento.AlmacenInventario); if (EnvioAlimento.Producto.ManejaLote) { AlmacenInventarioLotePL inventarioLotePL = new AlmacenInventarioLotePL(); AlmacenInventarioLoteInfo loteActual = inventarioLotePL.ObtenerAlmacenInventarioLotePorId(EnvioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().AlmacenInventarioLoteId); if (loteActual.Cantidad == 0) { error = Properties.Resources.EnvioAlimento_MsgProductoSinInventario; LimpiarProducto(); this.EnvioAlimento.Producto = new ProductoInfo { ProductoId = 0, SubfamiliaId = (int)this.cmbSubFamilia.SelectedValue }; cmbAlmacen.ItemsSource = new List <AlmacenInfo>(); this.skAyudaProducto.LimpiarCampos(); cmbAlmacen.IsEnabled = false; this.skAyudaProducto.LimpiarCampos(); this.skAyudaProducto.txtClave.Focus(); txtCantidadEnvio.Text = string.Empty; txtPrecioPromedio.Text = string.Empty; txtCantidadInventario.Text = string.Empty; return(true); } if ((loteActual.Cantidad - decimal.Parse(txtCantidadEnvio.Text)) < 0) { error = Properties.Resources.EnvioAlimento_MsgCantidadInventarioNegativo; LimpiarProducto(); txtCantidadEnvio.Text = string.Empty; txtPrecioPromedio.Text = string.Empty; txtCantidadInventario.Text = string.Empty; return(true); } error = string.Empty; return(false); } else { if (inventarioActualizado.Cantidad == 0) { error = Properties.Resources.EnvioAlimento_MsgProductoSinInventario; LimpiarProducto(); this.skAyudaProducto.LimpiarCampos(); this.skAyudaProducto.txtClave.Focus(); txtCantidadEnvio.Text = string.Empty; txtPrecioPromedio.Text = string.Empty; txtCantidadInventario.Text = string.Empty; return(true); } if (((inventarioActualizado.Cantidad - decimal.Parse(txtCantidadEnvio.Text.Trim())) < 0)) { error = Properties.Resources.EnvioAlimento_MsgCantidadInventarioNegativo; LimpiarProducto(); txtCantidadEnvio.Text = string.Empty; txtPrecioPromedio.Text = string.Empty; txtCantidadInventario.Text = string.Empty; return(true); } else { error = string.Empty; return(false); } } }
/// <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); } }
/// <summary> /// Asigna los eventos a los controles de ayuda /// </summary> private void AsignarEventosAyudas() { skAyudaLoteMPOrigen.AyudaConDatos += (sender, args) => { Contexto.AlmacenInventarioOrigen.Almacen = Contexto.AlmacenOrigen; Contexto.LoteMpOrigen.AlmacenInventario.Almacen = Contexto.AlmacenOrigen; }; skAyudaLoteMPDestino.AyudaConDatos += (sender, args) => { Contexto.AlmacenInventarioDestino.Almacen = Contexto.AlmacenDestino; Contexto.LoteMpDestino.AlmacenInventario.Almacen = Contexto.AlmacenDestino; }; #region AyudasOrigen skAyudaTipoAlmacenOrigen.AyudaConDatos += (o, args) => { iudFolio.IsEnabled = false; btnBuscarFolioEmbarque.IsEnabled = false; Contexto.AlmacenOrigen.TipoAlmacen = Contexto.TipoAlmacenOrigen; Contexto.AlmacenOrigen.TipoAlmacenID = Contexto.TipoAlmacenOrigen.TipoAlmacenID; Contexto.TipoAlmacenOrigen.ListaTipoAlmacen = configuracionTraspasoAlmacen.Select(tipo => tipo.TipoAlmacenOrigen.TipoAlmacenID).Distinct(). ToList(); var tiposDestino = configuracionTraspasoAlmacen.Where( tipo => tipo.TipoAlmacenOrigen.TipoAlmacenID == Contexto.TipoAlmacenOrigen.TipoAlmacenID); if (tiposDestino.Any()) { Contexto.TipoAlmacenDestino.ListaTipoAlmacen = tiposDestino.Select(tipo => tipo.TipoAlmacenDestino.TipoAlmacenID).Distinct(). ToList(); } Contexto.AlmacenOrigen.ListaTipoAlmacen = new List <TipoAlmacenInfo> { new TipoAlmacenInfo { TipoAlmacenID = Contexto.TipoAlmacenOrigen.TipoAlmacenID } }; }; skAyudaOrganizacionOrigen.AyudaConDatos += (o, args) => { Contexto.AlmacenOrigen.Organizacion = Contexto.OrganizacionOrigen; Contexto.OrganizacionOrigen.TipoOrganizacion = new TipoOrganizacionInfo { TipoOrganizacionID = TipoOrganizacion.Ganadera.GetHashCode() }; }; skAyudaAlmacenOrigen.AyudaConDatos += (o, args) => { Contexto.ProductoOrigen.AlmacenID = Contexto.AlmacenOrigen.AlmacenID; Contexto.AlmacenOrigen.TipoAlmacenID = Contexto.TipoAlmacenOrigen.TipoAlmacenID; Contexto.ProveedorOrigen.AlmacenID = Contexto.AlmacenOrigen.AlmacenID; if (Contexto.LoteMpOrigen == null) { Contexto.LoteMpOrigen = new AlmacenInventarioLoteInfo { AlmacenInventario = new AlmacenInventarioInfo() { Almacen = Contexto.AlmacenOrigen } }; } else { if (Contexto.LoteMpOrigen.AlmacenInventario == null) { Contexto.LoteMpOrigen.AlmacenInventario = new AlmacenInventarioInfo { Almacen = Contexto.AlmacenOrigen }; } else { Contexto.LoteMpOrigen.AlmacenInventario.Almacen = Contexto.AlmacenOrigen; } } }; skAyudaAlmacenOrigen.PuedeBuscar = () => { if ((Contexto.TipoAlmacenOrigen == null || Contexto.TipoAlmacenOrigen.TipoAlmacenID == 0) || (Contexto.OrganizacionOrigen == null || Contexto.OrganizacionOrigen.OrganizacionID == 0)) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_SeleccionarTipoOrganizacion, MessageBoxButton.OK, MessageImage.Warning); return(false); } return(true); }; skAyudaProductoOrigen.PuedeBuscar = () => { if (Contexto.AlmacenOrigen == null || Contexto.AlmacenOrigen.AlmacenID == 0) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_SeleccionarAlmacen, MessageBoxButton.OK, MessageImage.Warning); return(false); } return(true); }; skAyudaProductoOrigen.AyudaConDatos += (o, args) => { Contexto.ProductoOrigen.AlmacenID = Contexto.AlmacenOrigen.AlmacenID; BloqueaDesbloqueaControlesDestino(true); Contexto.ProductoDestino = Contexto.ProductoOrigen; skAyudaProductoDestino.IsEnabled = false; Contexto.ProveedorOrigen.ProductoID = Contexto.ProductoOrigen.ProductoId; Contexto.ProveedorOrigen.OrganizacionID = Contexto.OrganizacionOrigen.OrganizacionID; Contexto.ProveedorDestino.ProductoID = Contexto.ProductoOrigen.ProductoId; Contexto.ProveedorDestino.OrganizacionID = Contexto.OrganizacionOrigen.OrganizacionID; Contexto.LoteMpOrigen.OrganizacionId = Contexto.OrganizacionOrigen.OrganizacionID; Contexto.LoteMpOrigen.TipoAlmacenId = Contexto.TipoAlmacenOrigen.TipoAlmacenID; Contexto.LoteMpOrigen.ProductoId = Contexto.ProductoOrigen.ProductoId; Contexto.LoteMpOrigen.Activo = EstatusEnum.Activo; if (tiposAlmacenMedicamentos.Contains(Contexto.TipoAlmacenOrigen.TipoAlmacenID)) { var almacenInventarioPL = new AlmacenInventarioPL(); List <AlmacenInventarioInfo> inventarios = almacenInventarioPL.ObtienePorAlmacenIdLlenaProductoInfo(Contexto.AlmacenOrigen); Contexto.AlmacenInventarioOrigen = inventarios.FirstOrDefault( inven => inven.Producto.ProductoId == Contexto.ProductoOrigen.ProductoId); } }; #endregion Ayudas Origen #region AyudasDestino skAyudaTipoAlmacenDestino.PuedeBuscar += () => { if ((Contexto.TipoAlmacenOrigen == null || Contexto.TipoAlmacenOrigen.TipoAlmacenID == 0) || (Contexto.OrganizacionOrigen == null || Contexto.OrganizacionOrigen.OrganizacionID == 0)) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_SeleccionarTipoOrganizacion, MessageBoxButton.OK, MessageImage.Warning); return(false); } return(true); }; skAyudaTipoAlmacenDestino.AyudaConDatos += (o, args) => { Contexto.AlmacenDestino.TipoAlmacenID = Contexto.TipoAlmacenDestino.TipoAlmacenID; ConfiguracionTraspasoAlmacenInfo configuracionAlmacen = configuracionTraspasoAlmacen.FirstOrDefault( config => config.TipoAlmacenOrigen.TipoAlmacenID == Contexto.TipoAlmacenOrigen.TipoAlmacenID && config.TipoAlmacenDestino.TipoAlmacenID == Contexto.TipoAlmacenDestino.TipoAlmacenID); if (configuracionAlmacen != null) { if (!configuracionAlmacen.DiferenteOrganizacion) { Contexto.OrganizacionDestino = Contexto.OrganizacionOrigen; skAyudaOrganizacionDestino.IsEnabled = false; } } Contexto.AlmacenDestino.Organizacion = Contexto.OrganizacionDestino; MostrarControlesCantidades(); var tiposDestino = configuracionTraspasoAlmacen.Where( tipo => tipo.TipoAlmacenOrigen.TipoAlmacenID == Contexto.TipoAlmacenOrigen.TipoAlmacenID); if (tiposDestino.Any()) { Contexto.TipoAlmacenDestino.ListaTipoAlmacen = tiposDestino.Select(tipo => tipo.TipoAlmacenDestino.TipoAlmacenID).Distinct(). ToList(); Contexto.AlmacenDestino.ListaTipoAlmacen = tiposDestino.Select(tipo => tipo.TipoAlmacenDestino).Distinct(). ToList(); } }; skAyudaOrganizacionDestino.AyudaConDatos += (o, args) => { Contexto.AlmacenDestino.Organizacion = Contexto.OrganizacionDestino; }; skAyudaAlmacenDestino.AyudaConDatos += (o, args) => { Contexto.ProductoDestino.AlmacenID = Contexto.AlmacenDestino.AlmacenID; Contexto.AlmacenDestino.TipoAlmacenID = Contexto.TipoAlmacenDestino.TipoAlmacenID; Contexto.ProveedorDestino.AlmacenID = Contexto.AlmacenDestino.AlmacenID; Contexto.LoteMpDestino.OrganizacionId = Contexto.OrganizacionDestino.OrganizacionID; Contexto.LoteMpDestino.TipoAlmacenId = Contexto.TipoAlmacenDestino.TipoAlmacenID; Contexto.LoteMpDestino.ProductoId = Contexto.ProductoDestino.ProductoId; Contexto.LoteMpDestino.Activo = EstatusEnum.Activo; var tiposDestino = configuracionTraspasoAlmacen.Where( tipo => tipo.TipoAlmacenOrigen.TipoAlmacenID == Contexto.TipoAlmacenOrigen.TipoAlmacenID); Contexto.TipoAlmacenDestino.ListaTipoAlmacen = tiposDestino.Select(tipo => tipo.TipoAlmacenDestino.TipoAlmacenID).Distinct(). ToList(); Contexto.AlmacenDestino.ListaTipoAlmacen = tiposDestino.Select(tipo => tipo.TipoAlmacenDestino).Distinct(). ToList(); if (Contexto.LoteMpDestino == null) { Contexto.LoteMpDestino = new AlmacenInventarioLoteInfo { AlmacenInventario = new AlmacenInventarioInfo() { Almacen = Contexto.AlmacenDestino } }; } else { if (Contexto.LoteMpDestino.AlmacenInventario == null) { Contexto.LoteMpDestino.AlmacenInventario = new AlmacenInventarioInfo { Almacen = Contexto.AlmacenDestino }; } else { Contexto.LoteMpDestino.AlmacenInventario.Almacen = Contexto.AlmacenDestino; } } }; skAyudaCuentaContableContratoDestino.AyudaConDatos += (sender, args) => CargarCuentasContables(); #endregion AyudasDestino }
/// <summary> /// Cargar los datos del folio para la cancelacion /// </summary> private void CargarDatosCancelacion() { try { var organizacionPL = new OrganizacionPL(); var tipoAlmacenPL = new TipoAlmacenPL(); var productoPL = new ProductoPL(); Contexto.OrganizacionOrigen = organizacionPL.ObtenerPorID(Contexto.AlmacenOrigen.Organizacion.OrganizacionID); Contexto.OrganizacionDestino = organizacionPL.ObtenerPorID(Contexto.AlmacenDestino.Organizacion.OrganizacionID); Contexto.TipoAlmacenOrigen = tipoAlmacenPL.ObtenerPorID(Contexto.AlmacenOrigen.TipoAlmacen.TipoAlmacenID); Contexto.TipoAlmacenDestino = tipoAlmacenPL.ObtenerPorID(Contexto.AlmacenDestino.TipoAlmacen.TipoAlmacenID); Contexto.ProductoOrigen = productoPL.ObtenerPorID(Contexto.ProductoOrigen); Contexto.ProductoDestino = Contexto.ProductoOrigen; if (tiposAlmacenMedicamentos.Contains(Contexto.TipoAlmacenOrigen.TipoAlmacenID)) { var almacenInventarioPL = new AlmacenInventarioPL(); List <AlmacenInventarioInfo> inventarios = almacenInventarioPL.ObtienePorAlmacenIdLlenaProductoInfo(Contexto.AlmacenOrigen); Contexto.AlmacenInventarioOrigen = inventarios.FirstOrDefault( inven => inven.Producto.ProductoId == Contexto.ProductoOrigen.ProductoId); } stpControles.IsEnabled = false; btnGuardar.IsEnabled = false; btnCancelarFolio.IsEnabled = true; MostrarControlesCantidades(); if (stpControlesMEDOrigen.IsVisible) { var almacenInventarioPL = new AlmacenInventarioPL(); List <AlmacenInventarioInfo> inventariosDestino = almacenInventarioPL.ObtienePorAlmacenIdLlenaProductoInfo(Contexto.AlmacenDestino); Contexto.AlmacenInventarioDestino = inventariosDestino.FirstOrDefault( inven => inven.Producto.ProductoId == Contexto.ProductoOrigen.ProductoId); if (Contexto.AlmacenInventarioDestino != null) { if (Contexto.CantidadTraspasarDestino > Contexto.AlmacenInventarioDestino.Cantidad) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_CancelacionSinInventario, MessageBoxButton.OK, MessageImage.Warning); btnCancelarFolio.IsEnabled = false; } } } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoMPPAMED_ErrorCargarDatosCancelacion, 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); } }