public ServicioVentas(PizzeriaDbContext context, IRepositorioVentas repositorio, IRepositorioItemVentas repositorioItems, IUnitOfWork unitOfWork) { _context = context; _repositorio = repositorio; _repositorioItems = repositorioItems; _unitOfWork = unitOfWork; _mapper = Mapeador.Mapeador.CrearMapper(); }
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); } }
public void FacturarVenta(int ventaId) { try { conexion = new ConexionBd(); repositorioVentas = new RepositorioVentas(conexion.AbrirConexion()); repositorioVentas.FacturarVenta(ventaId); conexion.CerrarConexion(); } catch (Exception e) { throw new Exception(e.Message); } }
public decimal GetTotalVenta(int ventaId) { try { conexion = new ConexionBd(); repositorioVentas = new RepositorioVentas(conexion.AbrirConexion()); decimal total = repositorioVentas.GetTotalVenta(ventaId); conexion.CerrarConexion(); return(total); } catch (Exception e) { throw new Exception(e.Message); } }
public List <VentaListDto> GetLista(int?clienteId, DateTime fechaInicial, DateTime fechaFinal) { try { _conexionBd = new ConexionBd(); _repositorioDetalle = new RepositorioDetalleVentas(_conexionBd.AbrirConexion()); _repositorio = new RepositorioVentas(_conexionBd.AbrirConexion(), _repositorioDetalle); var lista = _repositorio.GetLista(clienteId, fechaInicial, fechaFinal); _conexionBd.CerrarConexion(); return(lista); } catch (Exception e) { throw new Exception(e.Message); } }
public void Guardar(VentaEditDto ventaDto) { #region Pasar de Dto a Entidad var listaDetalles = new List <DetalleVenta>(); foreach (var itemDto in ventaDto.DetalleVentas) { var item = new DetalleVenta() { DetalleVentaId = itemDto.DetalleVentaId, Producto = new Producto { ProductoId = itemDto.Producto.ProductoId, NombreProducto = itemDto.Producto.NombreProducto }, Cantidad = itemDto.Cantidad, Precio = itemDto.Precio }; listaDetalles.Add(item); } var venta = new Venta { VentaId = ventaDto.VentaId, Cliente = new Cliente { ClienteId = ventaDto.Cliente.ClienteId, NombreCompania = ventaDto.Cliente.NombreCompania }, FechaVenta = ventaDto.FechaVenta, DetalleVentas = listaDetalles }; #endregion #region Guardar la Venta _conexionBd = new ConexionBd(); SqlTransaction tran = null; try { SqlConnection cn = _conexionBd.AbrirConexion(); tran = cn.BeginTransaction();//Comienza la transacción _repositorio = new RepositorioVentas(cn, tran); _repositorioProductos = new RepositorioProductos(cn, tran); _repositorioDetalle = new RepositorioDetalleVentas(cn, tran); _repositorio.Guardar(venta); #region Recorrer los detalles de la venta foreach (var detalleVenta in venta.DetalleVentas) { detalleVenta.Venta = venta; _repositorioDetalle.Guardar(detalleVenta); _repositorioProductos.ActualizarStock(detalleVenta.Producto, -detalleVenta.Cantidad); } #endregion tran.Commit();//Confirma la persistencia de los datos ventaDto.VentaId = venta.VentaId; } catch (Exception e) { tran.Rollback();//Tira para atrás toda la transacción si no se completa throw new Exception(e.Message); } #endregion }
public ServiciosVenta(IRepositorioVentas repositorio, IUnitOfWork unitOfWork) { _repositorio = repositorio; _mapper = Mapeador.CrearMapper(); _unitOfWork = unitOfWork; }