コード例 #1
0
ファイル: EDegustacion.cs プロジェクト: sammx343/EVAStandard
 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)
     {
         IniciarDegustacion();
     }
     decimal valor = CalcularValor(articulo.PrecioVenta1, cantidad);
     EItemVenta item = new EItemVenta(articulo, cantidad, valor, tirilla.Count + 1, CalcularImpuesto(valor, articulo.Impuesto1), codigoLeido);
     if (cantidad > 0)
     {
         BrutoPositivo += valor;
     }
     else
     {
         BrutoNegativo += valor * -1;
     }
     TotalVenta = BrutoPositivo - BrutoNegativo;
     AgregarItemVenta(item);
     ActualizarImpuestosIncluidos(item, impuestos);
     return item;
 }
コード例 #2
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);
        }
コード例 #3
0
        protected void ActualizarImpuestosIncluidos(EItemVenta item, List <EImpuesto> impuestos)
        {
            EImpuesto impuesto = impuestos.Find(x => x.Porcentaje == (float)item.Articulo.Impuesto1);

            if (ImpuestosIncluidos.ContainsKey(impuesto))
            {
                ImpuestosIncluidos[impuesto][0] += item.Valor;
                ImpuestosIncluidos[impuesto][1] += (item.Valor - item.Impuesto);
                ImpuestosIncluidos[impuesto][2] += item.Impuesto;
            }
            else
            {
                ImpuestosIncluidos.Add(impuesto, new List <decimal> {
                    item.Valor, item.Valor - item.Impuesto, item.Impuesto
                });
            }
        }
コード例 #4
0
        public List <EItemVenta> tirillaLimpia()
        {
            List <EItemVenta> limpia = new List <EItemVenta>();

            foreach (var item in this.tirilla)
            {
                EItemVenta encontrado = limpia.Where(t => t.Articulo.CodigoImpresion == item.Articulo.CodigoImpresion).FirstOrDefault();
                if (encontrado != null)
                {
                    encontrado.Cantidad += item.Cantidad;
                    encontrado.Valor    += item.Valor;
                    if (encontrado.Cantidad == 0)
                    {
                        limpia.Remove(encontrado);
                    }
                }
                else
                {
                    limpia.Add(item.Clone() as EItemVenta);
                }
            }
            return(limpia);
        }
コード例 #5
0
 /// <summary>
 /// Genera el detalle de los impuestos del tiquete de la venta, calcula los valores para "Compra", "Base / Impuesto", "Impuesto" que serán impresos en la tirilla.
 /// </summary>
 /// <param name="item"></param>
 protected void ActualizarImpuestosIncluidosCompuestos(EItemVenta item)
 {
     foreach (KeyValuePair <EImpuestosArticulo, decimal> entry in item.Impuestos)
     {
         EImpuestosArticulo impuesto = ImpuestosIncluidosCompuestos.Where(d => d.Key.Id == entry.Key.Id).FirstOrDefault().Key;
         //impuesto = impuesto !=null? impuesto: entry.Key;
         decimal compra     = entry.Key.TipoImpuesto == 2 ? 0 : item.Valor;
         decimal compraBase = entry.Key.TipoImpuesto == 2 ? 0 : (item.Valor - item.Impuesto);
         decimal compraI    = entry.Value;
         if (impuesto != null)
         {
             ImpuestosIncluidosCompuestos[impuesto][0] += compra;
             ImpuestosIncluidosCompuestos[impuesto][1] += compraBase;
             ImpuestosIncluidosCompuestos[impuesto][2] += compraI;
         }
         else
         {
             ImpuestosIncluidosCompuestos.Add(entry.Key, new List <decimal> {
                 compra, compraBase, compraI
             });
         }
     }
 }
コード例 #6
0
 public void AgregarItemVenta(EItemVenta item)
 {
     tirilla.Add(item);
 }