示例#1
0
        public void Guardar(Ingreso ingreso)
        {
            _conexion = new ConexionBd();
            SqlTransaction tran = null;

            try
            {
                SqlConnection cn = _conexion.AbrirConexion();
                tran = cn.BeginTransaction();
                _repositorioIngresos        = new RepositorioIngresos(cn, tran);
                _repositorioProductos       = new RepositorioProductos(cn, tran);
                _repositorioDetalleIngresos = new RepositorioDetalleIngresos(cn, tran);
                _repositorioKardex          = new RepositorioKardex(cn, tran);

                _repositorioIngresos.Guardar(ingreso);
                foreach (var detalleIngreso in ingreso.DetalleIngresos)
                {
                    detalleIngreso.Ingreso = ingreso;
                    Kardex kardex = _repositorioKardex.GetUltimoKardex(detalleIngreso.Producto);
                    if (kardex == null)
                    {
                        kardex            = new Kardex();
                        kardex.Producto   = detalleIngreso.Producto;
                        kardex.Fecha      = ingreso.Fecha;
                        kardex.Movimiento = $"Ingreso Nro {ingreso.IngresoId}";
                        kardex.Entrada    = detalleIngreso.Cantidad;
                        kardex.Salida     = 0;
                        kardex.Saldo      = detalleIngreso.Cantidad;
                    }
                    else
                    {
                        kardex.Fecha      = ingreso.Fecha;
                        kardex.Movimiento = $"Ingreso Nro {ingreso.IngresoId}";
                        kardex.Entrada    = detalleIngreso.Cantidad;
                        kardex.Salida     = 0;
                        kardex.Saldo     += detalleIngreso.Cantidad;
                    }
                    _repositorioKardex.Guardar(kardex);
                    detalleIngreso.Kardex = kardex;
                    _repositorioDetalleIngresos.Guardar(detalleIngreso);
                    _repositorioProductos.ActualizarStock(detalleIngreso.Producto,
                                                          detalleIngreso.Cantidad);
                }
                tran.Commit();
            }
            catch (Exception e)
            {
                tran.Rollback();
                throw new Exception(e.Message);
            }
        }
示例#2
0
        public void Guardar(Venta venta)
        {
            conexion = new ConexionBd();
            SqlTransaction transaction = null;

            try
            {
                SqlConnection cn = conexion.AbrirConexion();
                transaction              = cn.BeginTransaction();
                repositorioVentas        = new RepositorioVentas(cn, transaction);
                repositorioDetalleVentas = new RepositorioDetalleVentas(cn, transaction);
                repositorioProductos     = new RepositorioProductos(cn, transaction);
                repositorioKardex        = new RepositorioKardex(transaction, cn);

                repositorioVentas.Guardar(venta);
                foreach (var detalleVenta in venta.DetalleVentas)
                {
                    detalleVenta.Venta = venta;
                    Kardex kardex = repositorioKardex.GetUltimoKardex(detalleVenta.Producto);
                    if (kardex == null)
                    {
                        kardex            = new Kardex();
                        kardex.Producto   = detalleVenta.Producto;
                        kardex.Fecha      = venta.Fecha;
                        kardex.Movimiento = $"Venta numero {venta.VentaId}";
                        kardex.Entrada    = 0;
                        kardex.Salida     = detalleVenta.Cantidad;
                        kardex.Saldo      = detalleVenta.Cantidad;
                    }
                    else
                    {
                        kardex.Fecha      = venta.Fecha;
                        kardex.Movimiento = $"Venta numero {venta.VentaId}";
                        kardex.Entrada    = 0;
                        kardex.Salida     = detalleVenta.Cantidad;
                        kardex.Saldo     -= detalleVenta.Cantidad;
                    }
                    repositorioKardex.Guardar(kardex);
                    detalleVenta.Kardex = kardex;
                    repositorioDetalleVentas.Guardar(detalleVenta);
                    repositorioProductos.ActualizarStock(detalleVenta.Producto, -detalleVenta.Cantidad);
                }
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.Message);
            }
        }