public int CrearFacturaVentas(NuevaFacturaVentaDto facturaVenta, string usuarioId, int estadoId) { string connectionString = ConfigurationManager.ConnectionStrings["TallerDeMotos"].ConnectionString; SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter(); int respuesta = 0; try { cmd = new SqlCommand("CrearFacturaVentas", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Id", facturaVenta.FacturaVentaDto.Id); cmd.Parameters.AddWithValue("@PresupuestoId", facturaVenta.PresupuestoCodigo); cmd.Parameters.AddWithValue("@NumeroFactura", facturaVenta.FacturaVentaDto.NumeroFactura); cmd.Parameters.AddWithValue("@TalonarioId", facturaVenta.FacturaVentaDto.TalonarioId); cmd.Parameters.AddWithValue("@FechaFactura", facturaVenta.FacturaVentaDto.FechaFacturaVenta); cmd.Parameters.AddWithValue("@SubTotal", facturaVenta.FacturaVentaDto.SubTotal); cmd.Parameters.AddWithValue("@UsuarioId", usuarioId); cmd.Parameters.AddWithValue("@EstadoId", estadoId); cmd.Parameters.Add("@resultado", SqlDbType.VarChar, 1).Direction = ParameterDirection.Output; con.Open(); cmd.ExecuteNonQuery(); respuesta = int.Parse(cmd.Parameters["@resultado"].Value.ToString()); } catch (Exception ex) { } finally { con.Close(); con.Dispose(); } return(respuesta); }
public IHttpActionResult CrearFacturaVenta(NuevaFacturaVentaDto nuevaFacturaVentaDto) { if (ModelState.IsValid) { try { var usuarioId = User.Identity.GetUserId(); var caja = _context.CajaAperturaCierres.Where(c => c.UsuarioId == usuarioId && c.EstaAbierta).SingleOrDefault(); if (caja != null) { var talonario = _context.Talonarios .Where(t => t.EstaActivo && t.CajaId == caja.CajaId) .Select(t => new { t.Id, t.NumeroFacturaActual }) .SingleOrDefault(); if (talonario != null) { foreach (var facturaDetalle in nuevaFacturaVentaDto.FacturaVentaDetalles) { TotalExentas += facturaDetalle.TotalLineaExenta; TotalIvaCincoXCiento += facturaDetalle.TotalLineaCincoXCiento; TotalIvaDiezXCiento += facturaDetalle.TotalLineaDiezXCiento; SubTotal += (facturaDetalle.TotalLineaExenta + facturaDetalle.TotalLineaCincoXCiento + TotalIvaDiezXCiento); } var facturaVentaDto = new FacturaVentaDto { NumeroFactura = talonario.NumeroFacturaActual, TalonarioId = talonario.Id, FechaFacturaVenta = DateTime.Now, SubTotal = SubTotal, //nuevaFacturaVentaDto.FacturaVentaDto.SubTotal, TotalExenta = TotalExentas, //nuevaFacturaVentaDto.FacturaVentaDto.TotalExenta, TotalCincoPorCiento = (TotalIvaCincoXCiento / 21), //nuevaFacturaVentaDto.FacturaVentaDto.TotalCincoPorCiento, TotalDiezPorCiento = (TotalIvaDiezXCiento / 11), //nuevaFacturaVentaDto.FacturaVentaDto.TotalDiezPorCiento, UsuarioId = User.Identity.GetUserId(), EstadoId = 1 }; var facturaVenta = Mapper.Map <FacturaVentaDto, FacturaVenta>(facturaVentaDto); _context.FacturaVentas.Add(facturaVenta); if (nuevaFacturaVentaDto.ClienteId > 0) { var facturaVentaCliente = new FacturaVentaCliente { VehiculoId = nuevaFacturaVentaDto.VehiculoId ?? default(int) }; _context.FacturaVentaClientes.Add(facturaVentaCliente); } if (nuevaFacturaVentaDto.PresupuestoCodigo > 0) { var presupuesto = _context.Presupuestos.Find(nuevaFacturaVentaDto.PresupuestoCodigo); _context.Presupuestos.Attach(presupuesto); facturaVenta.Presupuesto = presupuesto; } foreach (var detalle in nuevaFacturaVentaDto.FacturaVentaDetalles) { var facturaVentaDetalleDto = new FacturaVentaDetalleDto { ProductoId = detalle.ProductoId, Precio = detalle.Precio, Cantidad = detalle.Cantidad, Total = detalle.Total, TotalLineaExenta = detalle.TotalLineaExenta, TotalLineaCincoXCiento = detalle.TotalLineaCincoXCiento, TotalLineaDiezXCiento = detalle.TotalLineaDiezXCiento }; var facturaVentaDetalle = Mapper.Map <FacturaVentaDetalleDto, FacturaVentaDetalle>(facturaVentaDetalleDto); _context.FacturaVentaDetalles.Add(facturaVentaDetalle); } _context.SaveChanges(); } else { return(Json(new JsonResponse { Success = false, Message = "El Talonario de la factura no se encuentra activo" })); } } else { return(Json(new JsonResponse { Success = false, Message = "Usuario no está habilitado para generar una factura" })); } } catch (Exception ex) { var exceptionMessage = "PK_dbo.FacturaVentas"; if (ex.InnerException.Message.Contains(exceptionMessage)) { return(Json(new JsonResponse { Success = false, Message = exceptionMessage })); } } return(Ok(new JsonResponse { Success = true, Message = "Factura de Venta registrada con éxito" })); } return(BadRequest()); }
public FacturaVentaController() { _context = new ApplicationDbContext(); _conexionBD = new ConexionBD(); viewModel = new NuevaFacturaVentaDto(); }