Example #1
0
        /// <summary>
        /// El valor booleano representa si es una compra (true) o venta (false)
        /// </summary>
        /// <param name="producto"></param>
        /// <param name="ban"></param>
        public void Transaccion(List <EProducto> Producto, bool ban)
        {
            var Total = getTotal(Producto, ban);

            try
            {
                //Si es una compra checkeo si el producto ya existe y hago un Update
                if (prodService.CheckIfExists(Producto.First().id))
                {
                    if (ban)
                    {
                        prodService.UpdateStock(Producto.First().id, Producto.First().Cantidad, ban);
                    }
                    else
                    {
                        foreach (EProducto producto in Producto)
                        {
                            prodService.UpdateStock(producto.id, producto.Cantidad, ban);
                        }
                    }
                }
                //Caso contrario Inserto el nuevo producto.
                else
                {
                    prodService.Insert(Producto.First());
                }

                //Dependiendo si es compra o venta mando determinada tabla al historico
                if (ban)
                {
                    FillHistorico(Producto.First(), ban, Total);

                    _historico.nOperacion = cajaService.GetNextVal("COMPRA_HISTORICO");
                    cajaService.GrabarHistorico(_historico, "COMPRA_HISTORICO");
                }
                else
                {
                    _historico.nOperacion = cajaService.GetNextVal("VENTA_HISTORICO");
                    foreach (EProducto producto in Producto)
                    {
                        FillHistorico(producto, ban, Total);
                        cajaService.GrabarHistorico(_historico, "VENTA_HISTORICO");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }