public override void Ejecutar() { // log.Info("[CmdAgregarArticuloAjuste] Agregar artículo ajuste"); //Búsqueda del artículo. //TODO modificar consulta de valores de parametros. bool ventaSoloCodArticulo = false; if (!bool.TryParse(Parametros.Parametro("server.ventaSoloPorArticuloCod").Valor, out ventaSoloCodArticulo)) { log.Error("[CmdAgregarArticuloAjuste] El valor del parametro server.ventaSoloPorArticuloCod no es válido"); } bool implementaImpuestoCompuesto = Entorno.Instancia.Parametros.ObtenerValorParametro <bool>("pdv.definicion_impuesto_compuesta"); /*if (!bool.TryParse(Parametros.Parametro("pdv.definicion_impuesto_compuesta").Valor, out implementaImpuestoCompuesto)) * { * implementaImpuestoCompuesto = false; * }*/ #region validar ingreso de artículo // string[] entrada = new string[] { }; string articulo = ""; int cantidad = 1; bool cancelarItem = Reactor.Instancia.EstadoFSMActual == EstadosFSM.CancelarItemAjuste; //Valida si se debe agregar el último artículo de la lista o no. if (string.IsNullOrEmpty(solicitud.ValorEntrada)) { //Se busca el último artículo agregado. if (Entorno.Instancia.Vista.PanelVentas.Tirilla.IsNullOrEmptyList()) { log.Warn("[AgregarArticuloAjuste] no hay artículos para agregar"); iu.PanelVentas.VisorMensaje = "No hay artículos en la lista"; iu.PanelVentas.VisorEntrada = string.Empty; return; } else { var itemArt = Entorno.Instancia.Vista.PanelVentas.Tirilla.LastOrDefault(); entrada = new string[] { itemArt.Codigo }; } } else { entrada = solicitud.ValorEntrada.Split('*'); } //valida la entrada ingresada pro el usuario. if (entrada.Length > 1) { //articulo articulo = entrada[1]; // if (!int.TryParse(entrada[0], out cantidad)) { string msj = string.Format("El valor ingresado para la cantidad es inválido. [{0}]", entrada[0]); log.WarnFormat("[AgregarArticulo] {0}", msj); iu.PanelVentas.VisorMensaje = msj; } } else if (entrada.Length == 1) { if (string.IsNullOrEmpty(entrada[0])) { if (Entorno.Instancia.Vista.PanelVentas.Tirilla.Count > 0) { articulo = iu.PanelVentas.Tirilla.FirstOrDefault().Codigo; } } else { articulo = entrada[0]; } } this.CodigoArticulo = articulo; this.CantidadArticulo = !cancelarItem ? cantidad : -cantidad; #endregion Respuesta respuesta = new Respuesta(); var tiempoBusquedaAjuste = new MetricaTemporizador("BuscarArticuloAjuste"); EArticulo eArticulo = new PArticulo().BuscarArticuloPorCodigo(this.CodigoArticulo, ventaSoloCodArticulo, implementaImpuestoCompuesto, out respuesta); if (respuesta.Valida) { Telemetria.Instancia.AgregaMetrica(tiempoBusquedaAjuste.Para().AgregarPropiedad("Encontrado", true).AgregarPropiedad("Codigo", eArticulo.CodigoImpresion).AgregarPropiedad("Descripcion", eArticulo.DescripcionLarga).AgregarPropiedad("Impuesto", eArticulo.Impuesto1).AgregarPropiedad("Valor", eArticulo.PrecioVenta1)); log.InfoFormat("[CmdAgregarArticuloAjuste] Articulo encontrado: {0}, Transaccion: {1}, Factura {2}", eArticulo.ToString(), (Entorno.Instancia.Terminal.NumeroUltimaTransaccion + 1), (Entorno.Instancia.Terminal.NumeroUltimaFactura + 1)); if (Entorno.Instancia.Ajuste.CopiaTirilla.Count == 0) { Entorno.Instancia.Ajuste.EstaAbierta = true; } Procesar(eArticulo); log.DebugFormat("[CmdAgregarArticuloAjuste] {0}", this.ToString()); } else { Telemetria.Instancia.AgregaMetrica(tiempoBusquedaAjuste.Para().AgregarPropiedad("Encontrado", false).AgregarPropiedad("Codigo", this.CodigoArticulo).AgregarPropiedad("Mensaje", respuesta.Mensaje)); iu.PanelVentas.VisorMensaje = respuesta.Mensaje; iu.PanelVentas.VisorEntrada = string.Empty; // Emitir sonido Utilidades.EmitirAlerta(); } if (cancelarItem) { SolicitudVolver solicitudOperacion = new SolicitudVolver(Enums.Solicitud.Volver); Reactor.Instancia.Procesar(solicitudOperacion); } }
public override void Ejecutar() { // log.Info("[CmdConsultarPrecio] Consultando Precio: " + solicitud.ValorEntrada); //Búsqueda del artículo. //TODO modificar consulta de valores de parametros. bool ventaSoloCodArticulo = false; if (!bool.TryParse(Parametros.Parametro("server.ventaSoloPorArticuloCod").Valor, out ventaSoloCodArticulo)) { log.Error("[CmdAgregarArticulo] El valor del parametro server.ventaSoloPorArticuloCod no es válido"); } bool implementaImpuestoCompuesto = Entorno.Instancia.Parametros.ObtenerValorParametro <bool>("pdv.definicion_impuesto_compuesta"); /*if (!bool.TryParse(Parametros.Parametro("pdv.definicion_impuesto_compuesta").Valor, out implementaImpuestoCompuesto)) * { * implementaImpuestoCompuesto = false; * }*/ #region validar ingreso de artículo // string entrada = ""; string articulo = ""; entrada = solicitud.ValorEntrada; articulo = entrada; this.CodigoArticulo = articulo; #endregion Respuesta respuesta = new Respuesta(); var tiempoConsultarPrecio = new MetricaTemporizador("ConsultarPrecio"); EArticulo eArticulo = new PArticulo().BuscarArticuloPorCodigo(this.CodigoArticulo, ventaSoloCodArticulo, implementaImpuestoCompuesto, out respuesta); if (respuesta.Valida) { Telemetria.Instancia.AgregaMetrica(tiempoConsultarPrecio.Para().AgregarPropiedad("Encontrado", true).AgregarPropiedad("Codigo", eArticulo.CodigoImpresion).AgregarPropiedad("Descripcion", eArticulo.DescripcionLarga).AgregarPropiedad("Impuesto", eArticulo.Impuesto1).AgregarPropiedad("Valor", eArticulo.PrecioVenta1)); log.DebugFormat("[CmdConsultarPrecio] Articulo encontrado: {0}, Transaccion: {1}, Factura {2}", eArticulo.ToString(), (Entorno.Instancia.Terminal.NumeroUltimaTransaccion + 1), (Entorno.Instancia.Terminal.NumeroUltimaFactura + 1)); Procesar(eArticulo); log.DebugFormat("[CmdConsultarPrecio] {0}", this.ToString()); } else { Telemetria.Instancia.AgregaMetrica(tiempoConsultarPrecio.Para().AgregarPropiedad("Encontrado", false).AgregarPropiedad("Codigo", this.CodigoArticulo).AgregarPropiedad("Mensaje", respuesta.Mensaje)); iu.PanelVentas.VisorMensaje = respuesta.Mensaje; iu.PanelVentas.VisorEntrada = string.Empty; // Emitir sonido Utilidades.EmitirAlerta(); } SolicitudPanelVenta solicitudOperacion = new SolicitudPanelVenta(Enums.Solicitud.Vender); Reactor.Instancia.Procesar(solicitudOperacion); }