public static PedidoInfo ObtenerFolioPedido(int folioPedido) { var pedidoPL = new PedidosPL(); PedidoInfo pedido = null; var usuario = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; if (usuario != null) { pedido = pedidoPL.ObtenerPedidosProgramadosPorFolioPedido(folioPedido, usuario.Usuario.Organizacion.OrganizacionID); } return(pedido); }
public static PedidoDetalleInfo ObtenerProgramacionPedidoDetalle(int folioDetallePedido, int folioPedido) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = 0; var pedidosPl = new PedidosPL(); try { if (seguridad != null) { organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; } List <PedidoInfo> listaPedidos = pedidosPl.ObtenerPedidosProgramadosYParciales(new PedidoInfo { FolioPedido = folioPedido, // 0 Regresa todos los folios. Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }, Activo = EstatusEnum.Activo }); PedidoDetalleInfo pedidoDetalleInfo = null; if (listaPedidos != null) { PedidoInfo pedido = listaPedidos.First(); foreach (PedidoDetalleInfo pedidoDetalle in pedido.DetallePedido) { if (pedidoDetalle.PedidoDetalleId == folioDetallePedido) { var productoPl = new ProductoPL(); var productoForraje = productoPl.ObtenerProductoForraje(pedidoDetalle.Producto); if (productoForraje != null) { pedidoDetalle.Producto.Forraje = true; } pedidoDetalleInfo = pedidoDetalle; break; } } } return(pedidoDetalleInfo); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Validar lote en uso /// </summary> /// <returns></returns> private bool ValidarLoteEnUso() { decimal cantidadProgramadaAux = 0; var datosLote = new AlmacenInventarioLoteInfo { ProductoId = producto.ProductoId, OrganizacionId = pedido.Organizacion.OrganizacionID, TipoAlmacenId = (int)TipoAlmacenEnum.MateriasPrimas, Activo = EstatusEnum.Activo }; var almacenInventarioLotePL = new AlmacenInventarioLotePL(); IList <AlmacenInventarioLoteInfo> resultado = almacenInventarioLotePL.ObtenerLotesUso(datosLote); if (resultado != null) { if (Convert.ToInt32(skAyudaLote.Clave) == resultado[0].Lote || Autorizado) { Autorizado = false; return(true); } if (Convert.ToInt32(skAyudaLote.Clave) == resultado[1].Lote) { var pedidoPL = new PedidosPL(); int cantidadProgramada = pedidoPL.ObtenerPedidosProgramadosPorLoteCantidadProgramada(resultado[0].Lote); if (detallePedido.ProgramacionMateriaPrima != null) { foreach ( var programacionMateriaPrimaInfo in detallePedido.ProgramacionMateriaPrima.Where( programacionMateriaPrimaInfo => programacionMateriaPrimaInfo.InventarioLoteOrigen.Lote == resultado[0].Lote)) { cantidadProgramadaAux = programacionMateriaPrimaInfo.CantidadProgramada; } } if ((resultado[0].Cantidad - (cantidadProgramada + cantidadProgramadaAux)) == 0) { return(true); } } loteEnUso = resultado[0].Lote; } SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], string.Format(Properties.Resources.SolicitudProgramacionMateriaPrima_RequiereAutorizacion, skAyudaLote.Clave), MessageBoxButton.OK, MessageImage.Warning); SolicitarAutorizacionLoteUso(); return(false); }
/// <summary> /// Valida que la cantidad programada no pase de la cantidad solicitada. /// </summary> private bool ValidaCantidadProgramada() { bool resultado = true; var cantidadProgramada = decimal.Parse(txtCantidadProgramada.Value.ToString()); cantidadProgramada = cantidadProgramada + detallePedido.TotalCantidadProgramada; if (Programacion != null) // Si estan editando restamos la cantidad anterior { cantidadProgramada = cantidadProgramada - Programacion.CantidadProgramada; } if (cantidadProgramada > detallePedido.CantidadSolicitada) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CrearProgramacionMateriaPrimaDialogo_MsgCantidadSolicitada, MessageBoxButton.OK, MessageImage.Warning); txtCantidadProgramada.Focus(); resultado = false; } var pedidoPL = new PedidosPL(); List <PedidoPendienteLoteModel> listaPedidoPendientes = pedidoPL.ObtenerPedidosProgramadosPorLote(almacenInventarioLote.AlmacenInventarioLoteId); decimal cantidadPendienteProgramada = 0; if (listaPedidoPendientes != null && listaPedidoPendientes.Any()) { List <PedidoPendienteLoteModel> pedidosNoCompletos = listaPedidoPendientes.Where(pedi => pedi.AlmacenMovimientoOrigenID == 0).ToList(); if (pedidosNoCompletos.Any()) { cantidadPendienteProgramada = pedidosNoCompletos.Sum(pedi => pedi.CantidadProgramada); } } if (cantidadPendienteProgramada > 0) { if ((cantidadProgramada + cantidadPendienteProgramada) > almacenInventarioLote.Cantidad) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], string.Format(Properties.Resources.CrearProgramacionMateriaPrimaDialogo_MsgTotalProgramacion, (almacenInventarioLote.Cantidad - cantidadProgramada)), MessageBoxButton.OK, MessageImage.Warning); txtCantidadProgramada.Focus(); resultado = false; } } return(resultado); }
public static IList <PedidoInfo> ObtenerFolios(string almacen) { var pagina = new PaginacionInfo { Inicio = 1, Limite = 100000 }; var usuario = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionID = 0; if (usuario != null) { organizacionID = usuario.Usuario.Organizacion.OrganizacionID; } var pedido = new PedidoInfo { Almacen = new AlmacenInfo { Descripcion = almacen, }, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID }, Activo = EstatusEnum.Activo }; var pedidosPL = new PedidosPL(); ResultadoInfo <PedidoInfo> folios = pedidosPL.ObtenerPorFolioProgramadoPaginado(pagina, pedido); var resultado = new List <PedidoInfo>(); if (folios != null) { resultado.AddRange(folios.Lista); } return(resultado); }
public static void CrearPesajeMateriaPrima(PesajeMateriaPrimaInfo pesajeMateriaPrima, ProgramacionMateriaPrimaInfo programacionMateriaPrima, int pedido) { try { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; var usuarioId = 0; var pedidoInfo = new PedidoInfo(); if (seguridad != null) { usuarioId = seguridad.Usuario.UsuarioID; pedidoInfo = new PedidoInfo { FolioPedido = pedido, Organizacion = seguridad.Usuario.Organizacion }; } var abastoMateriaPrimaPl = new AbastoMateriaPrimaPL(); var pedidoPL = new PedidosPL(); pedidoInfo = pedidoPL.ObtenerPedidoPorFolio(pedidoInfo); if (pedidoInfo != null) { pedido = pedidoInfo.PedidoID; } var proveedorChoferPl = new ProveedorChoferPL(); if (pesajeMateriaPrima.ProveedorChofer.Proveedor.ProveedorID > 0 && pesajeMateriaPrima.ProveedorChofer.Chofer.ChoferID > 0) { pesajeMateriaPrima.ProveedorChofer = proveedorChoferPl.ObtenerProveedorChoferPorProveedorIdChoferId( pesajeMateriaPrima.ProveedorChofer.Proveedor.ProveedorID, pesajeMateriaPrima.ProveedorChofer.Chofer.ChoferID); pesajeMateriaPrima.ProveedorChoferID = pesajeMateriaPrima.ProveedorChofer.ProveedorChoferID; } else { pesajeMateriaPrima.ProveedorChoferID = 0; } pesajeMateriaPrima.UsuarioModificacionID = usuarioId; pesajeMateriaPrima.UsuarioCreacionID = usuarioId; pesajeMateriaPrima.UsuarioIDSurtido = usuarioId; pesajeMateriaPrima.UsuarioIDRecibe = usuarioId; pesajeMateriaPrima.EstatusID = Estatus.PedidoParcial.GetHashCode(); pesajeMateriaPrima.TipoPesajeID = TipoPesajeEnum.Tolva.GetHashCode(); pesajeMateriaPrima.Activo = true; pesajeMateriaPrima.FechaSurtido = DateTime.Today; pesajeMateriaPrima.FechaRecibe = DateTime.Today; programacionMateriaPrima.UsuarioModificacion = new UsuarioInfo { UsuarioID = usuarioId }; abastoMateriaPrimaPl.GuardarAbastoDeMateriaPrima(pesajeMateriaPrima, programacionMateriaPrima, pedido); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public static List <ParametrosDetallePedidoInfo> ObtenerPedidoPorTicket(int ticket, int folio) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = 0; var pedidosPl = new PedidosPL(); try { if (seguridad != null) { organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; } List <ParametrosDetallePedidoInfo> pedidoDetalleGenerico = null; var pedidoSeleccionado = pedidosPl.ObtenerPedidoPorFolio(folio, organizacionId); if (pedidoSeleccionado != null) { foreach (PedidoDetalleInfo pedidoDetalle in pedidoSeleccionado.DetallePedido) { bool agregarProducto = false; var detalle = new ParametrosDetallePedidoInfo { Producto = pedidoDetalle.Producto, PedidoDetalleId = pedidoDetalle.PedidoDetalleId, LoteProceso = pedidoDetalle.InventarioLoteDestino, CantidadSolicitada = pedidoDetalle.CantidadSolicitada }; if (pedidoDetalle.ProgramacionMateriaPrima != null) { foreach (var programacion in pedidoDetalle.ProgramacionMateriaPrima ) { if (programacion.PesajeMateriaPrima != null) { foreach ( var pesajeMateriaPrima in programacion.PesajeMateriaPrima.Where( pesajeMateriaPrima => pesajeMateriaPrima.PesoTara > 0 && pesajeMateriaPrima.Ticket == ticket)) { agregarProducto = true; } } } detalle.CantidadEntregada = pedidoDetalle.ProgramacionMateriaPrima.Sum( programacionMateria => programacionMateria.CantidadEntregada); } detalle.CantidadPendiente = pedidoDetalle.CantidadSolicitada - detalle.CantidadEntregada; if (agregarProducto) { if (pedidoDetalleGenerico == null) { pedidoDetalleGenerico = new List <ParametrosDetallePedidoInfo>(); } pedidoDetalleGenerico.Add(detalle); } } } return(pedidoDetalleGenerico); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public static List <PedidoInfo> ObtenerFolios(int folioPedido) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = 0; List <PedidoInfo> listaPedidos = null; var pedidosPl = new PedidosPL(); if (seguridad != null) { organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; } listaPedidos = pedidosPl.ObtenerPedidosProgramadosYParciales(new PedidoInfo { FolioPedido = folioPedido,// 0 Regresa todos los folios. Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }, Activo = EstatusEnum.Activo }); List <PedidoInfo> listaPedidoGenerico = null; if (listaPedidos != null) { foreach (var pedido in listaPedidos) { if (pedido.DetallePedido != null) { int contadorProducto = 0, contadorPesaje = 0; foreach (PedidoDetalleInfo pedidoDetalle in pedido.DetallePedido) { contadorProducto++; var detalle = new ParametrosDetallePedidoInfo { Producto = pedidoDetalle.Producto, PedidoDetalleId = pedidoDetalle.PedidoDetalleId, LoteProceso = pedidoDetalle.InventarioLoteDestino, CantidadSolicitada = pedidoDetalle.CantidadSolicitada }; if (pedidoDetalle.ProgramacionMateriaPrima != null) { foreach (var programacion in pedidoDetalle.ProgramacionMateriaPrima) { if (programacion.PesajeMateriaPrima != null) { foreach (var pesajeMateriaPrima in programacion.PesajeMateriaPrima.Where( pesajeMateriaPrima => pesajeMateriaPrima.PesoTara > 0)) { contadorPesaje++; } } } } } if (contadorPesaje != contadorProducto) { if (listaPedidoGenerico == null) { listaPedidoGenerico = new List <PedidoInfo>(); } listaPedidoGenerico.Add(pedido); } } } } if (listaPedidoGenerico != null) { listaPedidoGenerico = listaPedidoGenerico.OrderBy(x => x.FolioPedido).ToList(); } return(listaPedidoGenerico); }
public static List <ParametrosDetallePedidoInfo> ObtenerPedidoFolio(int folioPedido) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = 0; List <PedidoInfo> listaPedidos = null; var pedidosPl = new PedidosPL(); try { if (seguridad != null) { organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; } listaPedidos = pedidosPl.ObtenerPedidosProgramadosYParciales(new PedidoInfo { FolioPedido = folioPedido, // 0 Regresa todos los folios. Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }, Activo = EstatusEnum.Activo }); List <ParametrosDetallePedidoInfo> pedidoDetalleGenerico = null; if (listaPedidos != null) { PedidoInfo pedido = listaPedidos.First(); if (pedido.DetallePedido != null) { foreach (PedidoDetalleInfo pedidoDetalle in pedido.DetallePedido) { var agregarProducto = true; var detalle = new ParametrosDetallePedidoInfo { Producto = pedidoDetalle.Producto, PedidoDetalleId = pedidoDetalle.PedidoDetalleId, LoteProceso = pedidoDetalle.InventarioLoteDestino, CantidadSolicitada = pedidoDetalle.CantidadSolicitada }; if (pedidoDetalle.ProgramacionMateriaPrima != null) { foreach (var programacion in pedidoDetalle.ProgramacionMateriaPrima ) { if (programacion.PesajeMateriaPrima != null) { foreach ( var pesajeMateriaPrima in programacion.PesajeMateriaPrima.Where( pesajeMateriaPrima => pesajeMateriaPrima.PesoTara > 0)) { agregarProducto = false; } } } detalle.CantidadEntregada = pedidoDetalle.ProgramacionMateriaPrima.Sum( programacionMateria => programacionMateria.CantidadEntregada); } detalle.CantidadPendiente = pedidoDetalle.CantidadSolicitada - detalle.CantidadEntregada; if (pedidoDetalle.Producto == null) { agregarProducto = false; } if (agregarProducto) { if (pedidoDetalleGenerico == null) { pedidoDetalleGenerico = new List <ParametrosDetallePedidoInfo>(); } pedidoDetalleGenerico.Add(detalle); } } } } return(pedidoDetalleGenerico); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }