public SystemValidationModel Save(VentasAddViewModel viewModel) { var venta = Mapper.Map <Venta>(viewModel); venta.DateCreated = DateTime.Now; //var timbrado = _timbrados.GetValidTimbrado(viewModel.SucursalId, viewModel.CajaId); //if (timbrado == null) // return new SystemValidationModel() { Success = false, Message = "No existe un timbrado valido registrado" }; //venta.Timbrado = timbrado; //var nroFactura = GetValidNroFactura(timbrado); //if (nroFactura == null) // return new SystemValidationModel() { Success = false, Message = "No existen numeros validos para el timbrado actual" }; if (viewModel.PagoVenta.Cambio != 0) { venta.Cambio = viewModel.PagoVenta.Cambio; } DescontarStock(viewModel.DetalleVenta, viewModel.SucursalId); venta.Estado = viewModel.CondicionVenta == Constants.CondicionVenta.Contado ? Constants.EstadoVenta.Pagado : Constants.EstadoVenta.PendientedePago; if (venta.Estado == Constants.EstadoVenta.Pagado) { SaveDetalleCaja(venta, viewModel); } if (venta.CondicionVenta == Constants.CondicionVenta.Credito) { AumentarSaldoCliente(venta); } _context.Entry(venta).State = EntityState.Added; foreach (var detalle in venta.DetalleVenta) { _context.Entry(detalle).State = EntityState.Added; } foreach (var cuota in venta.Cuotas) { _context.Entry(cuota).State = EntityState.Added; } if (viewModel.PedidoId != null) { var pedido = _pedidos.GetById(viewModel.PedidoId.Value); ChecForUpdatePedido(pedido, venta.DetalleVenta); pedido.Estado = pedido.Delivery ? Constants.EstadoPedido.EntregadoPorDelivery : Constants.EstadoPedido.Finalizado; _context.Entry(pedido).State = EntityState.Modified; } var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Id = venta.Id, Message = success ? "Se ha guardado correctamente la venta" : "No se pudo guardar la venta", Success = success }; return(validation); }
private void SaveDetalleCaja(Venta venta, VentasAddViewModel viewModel) { var cajaAperturaCierreDetalle = new DetalleCajaAperturaCierre() { CajaAperturaCierreId = viewModel.CajaAperturaCierreId, Monto = venta.MontoTotal, Cambio = venta.Cambio, TipoOperacion = Constants.TipoCajaAperturaCierreOperacion.Venta }; _context.Entry(cajaAperturaCierreDetalle).State = EntityState.Added; }
public IActionResult Add() { var viewModel = new VentasAddViewModel() { SucursalId = SucursalId, CajaId = CajaId, CajaAperturaCierreId = CajaAperturaCierreId }; var timbrado = _timbrados.GetValidTimbrado(SucursalId, CajaId); viewModel.NroFactura = _ventas.GetValidNroFactura(SucursalId, CajaId); viewModel.NroFacturaString = _ventas.GetNroFacturaString(SucursalId, CajaId, viewModel.NroFactura); viewModel.TimbradoId = timbrado.Id; if (timbrado != null) { viewModel = Mapper.Map(timbrado, viewModel); } return(View(viewModel)); }