예제 #1
0
        public override EItemVenta AgregarArticulo(EArticulo articulo, int cantidad, string codigoLeido, List <EImpuesto> impuestos, bool implementaImpuestoCompuesto, out Respuesta respuesta)
        {
            respuesta = new Respuesta(true);
            //Valida si la cantidad es diferente de cero.
            if (!EsDiferenteCero(cantidad, ref respuesta))
            {
                return(null);
            }
            if (cantidad > 0)
            {
                if (!EsValidoCancelarItem(articulo, cantidad, ref respuesta))
                {
                    return(null);
                }
            }
            if (!EstaAbierta)
            {
                IniciarDevolucion();
            }

            if (implementaImpuestoCompuesto)
            {
                if (!EsValidoImpuestoCompuesto(articulo, ref respuesta))
                {
                    return(null);
                }
            }
            else
            {
                if (!EsValidoImpuesto(articulo, impuestos, ref respuesta))
                {
                    return(null);
                }
            }
            decimal    valor = CalcularValor(articulo.PrecioVenta1, cantidad);
            EItemVenta item  = new EItemVenta(articulo, cantidad, valor, tirilla.Count + 1, CalcularImpuesto(valor, articulo.Impuesto1), codigoLeido);

            ActualizarTotales(cantidad, valor);
            //Manejo nuevo de impuestos
            if (implementaImpuestoCompuesto)
            {
                item.calcularImpuestos(cantidad);
            }
            AgregarItemVenta(item);
            if (implementaImpuestoCompuesto)
            {
                ActualizarImpuestosIncluidosCompuestos(item);
            }
            else
            {
                ActualizarImpuestosIncluidos(item, impuestos);
            }
            return(item);
        }