mirror of
https://github.com/yummy4friends/y4f.git
synced 2024-12-28 13:48:20 +01:00
Compare commits
2 Commits
c9f10887ee
...
9add5ac628
Author | SHA1 | Date | |
---|---|---|---|
|
9add5ac628 | ||
|
32bedc209c |
@ -0,0 +1,138 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using WebApi.Data;
|
||||||
|
using WebApi.Models;
|
||||||
|
|
||||||
|
namespace WebApi.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class BestellungspositionHasMenuitemsController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly WebApiContext _context;
|
||||||
|
|
||||||
|
public BestellungspositionHasMenuitemsController(WebApiContext context)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET: api/BestellungspositionHasMenuitems
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<ActionResult<IEnumerable<BestellungspositionHasMenuitem>>> GetBestellungspositionHasMenuitem()
|
||||||
|
{
|
||||||
|
if (_context.BestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
return await _context.BestellungspositionHasMenuitem.ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET: api/BestellungspositionHasMenuitems/5
|
||||||
|
[HttpGet("{id}")]
|
||||||
|
public async Task<ActionResult<BestellungspositionHasMenuitem>> GetBestellungspositionHasMenuitem(int? id)
|
||||||
|
{
|
||||||
|
if (_context.BestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
var bestellungspositionHasMenuitem = await _context.BestellungspositionHasMenuitem.FindAsync(id);
|
||||||
|
|
||||||
|
if (bestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
return bestellungspositionHasMenuitem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PUT: api/BestellungspositionHasMenuitems/5
|
||||||
|
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
|
||||||
|
[HttpPut("{id}")]
|
||||||
|
public async Task<IActionResult> PutBestellungspositionHasMenuitem(int? id, BestellungspositionHasMenuitem bestellungspositionHasMenuitem)
|
||||||
|
{
|
||||||
|
if (id != bestellungspositionHasMenuitem.Bestellungsposition_IDBestellung)
|
||||||
|
{
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
_context.Entry(bestellungspositionHasMenuitem).State = EntityState.Modified;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
catch (DbUpdateConcurrencyException)
|
||||||
|
{
|
||||||
|
if (!BestellungspositionHasMenuitemExists(id))
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
// POST: api/BestellungspositionHasMenuitems
|
||||||
|
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<ActionResult<BestellungspositionHasMenuitem>> PostBestellungspositionHasMenuitem(BestellungspositionHasMenuitem bestellungspositionHasMenuitem)
|
||||||
|
{
|
||||||
|
if (_context.BestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return Problem("Entity set 'WebApiContext.BestellungspositionHasMenuitem' is null.");
|
||||||
|
}
|
||||||
|
_context.BestellungspositionHasMenuitem.Add(bestellungspositionHasMenuitem);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
catch (DbUpdateException)
|
||||||
|
{
|
||||||
|
if (BestellungspositionHasMenuitemExists(bestellungspositionHasMenuitem.Bestellungsposition_IDBestellung))
|
||||||
|
{
|
||||||
|
return Conflict();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CreatedAtAction("GetBestellungspositionHasMenuitem", new { id = bestellungspositionHasMenuitem.Bestellungsposition_IDBestellung }, bestellungspositionHasMenuitem);
|
||||||
|
}
|
||||||
|
|
||||||
|
// DELETE: api/BestellungspositionHasMenuitems/5
|
||||||
|
[HttpDelete("{id}")]
|
||||||
|
public async Task<IActionResult> DeleteBestellungspositionHasMenuitem(int? id)
|
||||||
|
{
|
||||||
|
if (_context.BestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
var bestellungspositionHasMenuitem = await _context.BestellungspositionHasMenuitem.FindAsync(id);
|
||||||
|
if (bestellungspositionHasMenuitem == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
_context.BestellungspositionHasMenuitem.Remove(bestellungspositionHasMenuitem);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool BestellungspositionHasMenuitemExists(int? id)
|
||||||
|
{
|
||||||
|
return (_context.BestellungspositionHasMenuitem?.Any(e => e.Bestellungsposition_IDBestellung == id)).GetValueOrDefault();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -29,6 +29,8 @@ public partial class WebApiContext : DbContext
|
|||||||
|
|
||||||
public virtual DbSet<Admin> Admins { get; set; }
|
public virtual DbSet<Admin> Admins { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<BestellungspositionHasMenuitem> BestellungspositionHasMenuitem { get; set; }
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
modelBuilder
|
modelBuilder
|
||||||
@ -81,31 +83,31 @@ public partial class WebApiContext : DbContext
|
|||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("fk_Bestellungsposition_Rabatt1");
|
.HasConstraintName("fk_Bestellungsposition_Rabatt1");
|
||||||
|
|
||||||
entity.HasMany(d => d.MenuItemIdmenuItems).WithMany(p => p.BestellungspositionIdbestellungs)
|
//entity.HasMany(d => d.MenuItemIdmenuItems).WithMany(p => p.BestellungspositionIdbestellungs)
|
||||||
.UsingEntity<Dictionary<string, object>>(
|
// .UsingEntity<Dictionary<string, object>>(
|
||||||
"BestellungspositionHasMenuitem",
|
// "BestellungspositionHasMenuitem",
|
||||||
r => r.HasOne<Menuitem>().WithMany()
|
// r => r.HasOne<Menuitem>().WithMany()
|
||||||
.HasForeignKey("MenuItemIdmenuItem")
|
// .HasForeignKey("MenuItemIdmenuItem")
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
// .OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("fk_Bestellungsposition_has_MenuItem_MenuItem1"),
|
// .HasConstraintName("fk_Bestellungsposition_has_MenuItem_MenuItem1"),
|
||||||
l => l.HasOne<Bestellungsposition>().WithMany()
|
// l => l.HasOne<Bestellungsposition>().WithMany()
|
||||||
.HasForeignKey("BestellungspositionIdbestellung")
|
// .HasForeignKey("BestellungspositionIdbestellung")
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
// .OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("fk_Bestellungsposition_has_MenuItem_Bestellungsposition1"),
|
// .HasConstraintName("fk_Bestellungsposition_has_MenuItem_Bestellungsposition1"),
|
||||||
j =>
|
// j =>
|
||||||
{
|
// {
|
||||||
j.HasKey("BestellungspositionIdbestellung", "MenuItemIdmenuItem")
|
// j.HasKey("BestellungspositionIdbestellung", "MenuItemIdmenuItem")
|
||||||
.HasName("PRIMARY")
|
// .HasName("PRIMARY")
|
||||||
.HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });
|
// .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });
|
||||||
j.ToTable("bestellungsposition_has_menuitem");
|
// j.ToTable("bestellungsposition_has_menuitem");
|
||||||
j.HasIndex(new[] { "MenuItemIdmenuItem" }, "fk_Bestellungsposition_has_MenuItem_MenuItem1");
|
// j.HasIndex(new[] { "MenuItemIdmenuItem" }, "fk_Bestellungsposition_has_MenuItem_MenuItem1");
|
||||||
j.IndexerProperty<int>("BestellungspositionIdbestellung")
|
// j.IndexerProperty<int>("BestellungspositionIdbestellung")
|
||||||
.HasColumnType("int(11)")
|
// .HasColumnType("int(11)")
|
||||||
.HasColumnName("Bestellungsposition_IDBestellung");
|
// .HasColumnName("Bestellungsposition_IDBestellung");
|
||||||
j.IndexerProperty<int>("MenuItemIdmenuItem")
|
// j.IndexerProperty<int>("MenuItemIdmenuItem")
|
||||||
.HasColumnType("int(11)")
|
// .HasColumnType("int(11)")
|
||||||
.HasColumnName("MenuItem_IDMenuItem");
|
// .HasColumnName("MenuItem_IDMenuItem");
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<Kunde>(entity =>
|
modelBuilder.Entity<Kunde>(entity =>
|
||||||
@ -212,16 +214,16 @@ public partial class WebApiContext : DbContext
|
|||||||
entity.Property(e => e.Password).HasMaxLength(100);
|
entity.Property(e => e.Password).HasMaxLength(100);
|
||||||
});
|
});
|
||||||
|
|
||||||
//modelBuilder.Entity<BestellungspositionHasMenuitem>(entity =>
|
modelBuilder.Entity<BestellungspositionHasMenuitem>(entity =>
|
||||||
//{
|
{
|
||||||
// entity.HasKey(e => new { e.BestellungspositionId, e.MenuitemId })
|
entity.HasKey(e => new { e.Bestellungsposition_IDBestellung, e.MenuItem_IDMenuItem })
|
||||||
// .HasName("PRIMARY");
|
.HasName("PRIMARY");
|
||||||
|
|
||||||
// entity.ToTable("bestellungsposition_has_menuitem");
|
entity.ToTable("bestellungsposition_has_menuitem");
|
||||||
|
|
||||||
// entity.Property(e => e.BestellungspositionId).HasColumnType("int(11)");
|
entity.Property(e => e.Bestellungsposition_IDBestellung).HasColumnType("int(11)").HasColumnName("Bestellungsposition_IDBestellung");
|
||||||
// entity.Property(e => e.MenuitemId).HasColumnType("int(11)");
|
entity.Property(e => e.MenuItem_IDMenuItem).HasColumnType("int(11)").HasColumnName("MenuItem_IDMenuItem");
|
||||||
//});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<MenuitemHasAllergie>(entity =>
|
modelBuilder.Entity<MenuitemHasAllergie>(entity =>
|
||||||
{
|
{
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace WebApi.Models;
|
namespace WebApi.Models;
|
||||||
|
|
||||||
public partial class Bestellungsposition
|
public partial class Bestellungsposition
|
||||||
{
|
{
|
||||||
public int Idbestellung { get; set; }
|
public int Idbestellung { get; set; }
|
||||||
|
|
||||||
public int? Menge { get; set; }
|
public int? Menge { get; set; }
|
||||||
|
|
||||||
public DateTime? Datum { get; set; }
|
public DateTime? Datum { get; set; }
|
||||||
|
|
||||||
public int KundeIdkunde { get; set; }
|
public int KundeIdkunde { get; set; }
|
||||||
|
|
||||||
public int RabattIdrabatt { get; set; }
|
public int RabattIdrabatt { get; set; }
|
||||||
|
|
||||||
public virtual Kunde KundeIdkundeNavigation { get; set; } = null!;
|
public virtual Kunde? KundeIdkundeNavigation { get; set; } = null!;
|
||||||
|
|
||||||
public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!;
|
public virtual Rabatt? RabattIdrabattNavigation { get; set; } = null!;
|
||||||
|
|
||||||
public virtual ICollection<Menuitem> MenuItemIdmenuItems { get; set; } = new List<Menuitem>();
|
public virtual ICollection<Menuitem>? MenuItemIdmenuItems { get; set; } = new List<Menuitem>();
|
||||||
}
|
}
|
||||||
|
11
src/WebApi/Models/BestellungspositionHasMenuitem.cs
Normal file
11
src/WebApi/Models/BestellungspositionHasMenuitem.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace WebApi.Models;
|
||||||
|
|
||||||
|
public partial class BestellungspositionHasMenuitem
|
||||||
|
{
|
||||||
|
public int? Bestellungsposition_IDBestellung { get; set; }
|
||||||
|
|
||||||
|
public int? MenuItem_IDMenuItem { get; set; }
|
||||||
|
}
|
@ -91,8 +91,8 @@
|
|||||||
<td class="d-flex justify-content-center align-items-center" style="padding-top:0px;">
|
<td class="d-flex justify-content-center align-items-center" style="padding-top:0px;">
|
||||||
<div style="margin:20px;">
|
<div style="margin:20px;">
|
||||||
<div class="d-flex justify-content-center align-items-center">
|
<div class="d-flex justify-content-center align-items-center">
|
||||||
<input type="number" style="width:80px" min="10" max="19" />
|
<input type="number" style="width:80px" min="10" max="19" @bind-value="@hour" @onclick="@(()=>UpdateTime())" />
|
||||||
<input type="number" style="width:80px" min="0" max="59" />
|
<input type="number" style="width:80px" min="0" max="59" @bind-value="@minute" @onclick="@(()=>UpdateTime())" />
|
||||||
|
|
||||||
Uhr
|
Uhr
|
||||||
</div>
|
</div>
|
||||||
@ -111,7 +111,7 @@
|
|||||||
<div class="col mt-auto ">
|
<div class="col mt-auto ">
|
||||||
<div class="d-flex flex-column align-items-center ">
|
<div class="d-flex flex-column align-items-center ">
|
||||||
<a href="/speisekarte" class="btn_bg w-75 btn text-center">Zurück</a>
|
<a href="/speisekarte" class="btn_bg w-75 btn text-center">Zurück</a>
|
||||||
<a href="/Bestellabschluss" class="btn_forward btn w-75 ">Weiter</a>
|
<a class="btn_forward btn w-75 " @onclick="@(() => SetBestllung())">Weiter</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -121,9 +121,28 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
public int hour;
|
||||||
|
public int minute;
|
||||||
|
private void UpdateTime()
|
||||||
|
{
|
||||||
|
localStorage.SetItem<int>("Hour", hour);
|
||||||
|
localStorage.SetItem<int>("Minute", minute);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetBestllung()
|
||||||
|
{
|
||||||
|
if (menuitemIds.Count == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
UpdateTime();
|
||||||
|
localStorage.SetItem<Dictionary<int, int>>("MenuItemIds", menuitemIds);
|
||||||
|
_navigationManager.NavigateTo("/Bestellabschluss");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public decimal summe;
|
public decimal summe;
|
||||||
public Dictionary<int, int> menuitemIds = new Dictionary<int, int>();
|
public Dictionary<int, int> menuitemIds = new Dictionary<int, int>();
|
||||||
|
|
||||||
@ -199,6 +218,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
localStorage.SetItem<decimal>("Summe", summe);
|
||||||
|
|
||||||
|
// if hour/minute is set, set the values
|
||||||
|
if (localStorage.GetItem<int>("Hour") != 0)
|
||||||
|
{
|
||||||
|
hour = localStorage.GetItem<int>("Hour");
|
||||||
|
}
|
||||||
|
if (localStorage.GetItem<int>("Minute") != 0)
|
||||||
|
{
|
||||||
|
minute = localStorage.GetItem<int>("Minute");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Allergie
|
public class Allergie
|
||||||
|
@ -1,36 +1,305 @@
|
|||||||
@page "/Bestellabschluss"
|
@page "/Bestellabschluss"
|
||||||
|
|
||||||
|
@inject HttpClient Http
|
||||||
|
@inject Blazored.LocalStorage.ISyncLocalStorageService localStorage
|
||||||
|
@inject NavigationManager _navigationManager
|
||||||
<body>
|
<body>
|
||||||
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
||||||
<p>Sie haben derzeit <b>1 Yummy-Punkt(e)</b></p>
|
<p>Sie haben derzeit <b>@kunde.Treuepunkte Yummy-Punkt(e)</b></p>
|
||||||
<p class="text">Bei einem Mindestbestellwert von 8€ erhalten Sie ein Yummy-Punkt.
|
<p class="text">
|
||||||
Ab der 10ten Bestellung gibt es einen Rabatt zu Ihrer nächsten Bestellung.</p>
|
Bei einem Mindestbestellwert von 8€ erhalten Sie ein Yummy-Punkt.
|
||||||
|
Ab der 10ten Bestellung gibt es einen Rabatt (@rabatt.Prozent%) zu Ihrer nächsten Bestellung.
|
||||||
<div class="img" >
|
</p>
|
||||||
@for(int i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
<img src="assets/White-Circle.png ">
|
|
||||||
}
|
|
||||||
<br>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="text">Achtung: Bitte beachten Sie, dass keine online Bezahlung zur Verfügung steht.
|
|
||||||
Diese dient nur zur Vorbestellung und muss selbst abgeholt werden.</p>
|
|
||||||
|
|
||||||
<div class="button">
|
|
||||||
<form id="button1" action="Warenkorb">
|
|
||||||
<input type="submit" value="Zurück" class="btn">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<form id="button2" action="Confirm">
|
<div class="img">
|
||||||
<input type="submit" value="Vorbestellen" class="btn">
|
@for (int i = 0; i < 10; i++)
|
||||||
</form>
|
{
|
||||||
</div>
|
@*if kunde hat treuepunkte*@
|
||||||
|
@if (kunde.Treuepunkte > i)
|
||||||
|
{
|
||||||
|
<img src="assets/Point-Circle.png ">
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<img src="assets/White-Circle.png ">
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<p class="text">
|
||||||
|
Achtung: Bitte beachten Sie, dass keine online Bezahlung zur Verfügung steht.
|
||||||
|
Diese dient nur zur Vorbestellung und muss selbst abgeholt werden.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Ihr gesamt bestellter Betrag beträgt: <strong>@summe €</strong>
|
||||||
|
</p>
|
||||||
|
@*if treuepunkte 10 dann angebot bieten*@
|
||||||
|
@if (kunde.Treuepunkte == 10)
|
||||||
|
{
|
||||||
|
<p class=""><strong>Sie haben 10 Yummy-Punkte erreicht</strong>. Sie können diese jetzt einlösen und erhalten einen Rabatt von <strong>@rabatt.Prozent%</strong>.</p>
|
||||||
|
<p><strong>Wollen Sie diese einlösen?</strong> <InputCheckbox @bind-Value="rabattEinloesen" /></p>
|
||||||
|
|
||||||
</div>
|
@if (rabattEinloesen == true)
|
||||||
|
{
|
||||||
|
<p>Betrag beträgt abzüglich des Rabattes: <strong>@Math.Round(summe - (summe * rabatt.Prozent / 100), 2) €</strong></p>
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
<div class="button">
|
||||||
|
<form id="button1" action="Warenkorb">
|
||||||
|
<a href="/shopping_cart" class="btn">Zurück</a>
|
||||||
|
</form>
|
||||||
|
<form id="button2" action="Confirm">
|
||||||
|
<input value="Vorbestellen" class="btn" @onclick="Vorbestellen" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
@code {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
@code {
|
||||||
|
private List<Kunde> kunden = new List<Kunde>();
|
||||||
|
private Kunde kunde = new Kunde();
|
||||||
|
|
||||||
|
private List<Rabatt> rabatte = new List<Rabatt>();
|
||||||
|
private Rabatt rabatt = new Rabatt();
|
||||||
|
private bool rabattEinloesen;
|
||||||
|
|
||||||
|
public Dictionary<int, int> menuitemIds = new Dictionary<int, int>();
|
||||||
|
|
||||||
|
public List<Bestellungsposition> bestellungspositionen = new List<Bestellungsposition>();
|
||||||
|
public int hour;
|
||||||
|
public int minute;
|
||||||
|
|
||||||
|
public decimal summe;
|
||||||
|
|
||||||
|
public void Vorbestellen()
|
||||||
|
{
|
||||||
|
// set rabattEinloesen
|
||||||
|
if (rabattEinloesen)
|
||||||
|
{
|
||||||
|
kunde.Treuepunkte = 0;
|
||||||
|
// delete treuepunkte API
|
||||||
|
Http.PutAsJsonAsync("https://localhost:7076/api/kunden/" + kunde.Idkunde, kunde);
|
||||||
|
summe = Math.Round(summe - (summe * rabatt.Prozent / 100), 2);
|
||||||
|
localStorage.SetItem("Summe", summe);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
localStorage.SetItem("RabattEinloesen", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add bestellung to API
|
||||||
|
// add all bestellungspositionen to API
|
||||||
|
// get latest bestellungsposition id wenn nix da dann 0
|
||||||
|
int bestellungspositionId = 0;
|
||||||
|
if (bestellungspositions != null)
|
||||||
|
{
|
||||||
|
// get the highest id from bestellungspositions
|
||||||
|
int highestId;
|
||||||
|
foreach (var item in bestellungspositions)
|
||||||
|
{
|
||||||
|
highestId = item.Idbestellung;
|
||||||
|
if (highestId > bestellungspositionId)
|
||||||
|
{
|
||||||
|
bestellungspositionId = highestId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var item in menuitemIds)
|
||||||
|
{
|
||||||
|
bestellungspositionId++;
|
||||||
|
Bestellungsposition bestellungsposition = new Bestellungsposition();
|
||||||
|
bestellungsposition.Idbestellung = bestellungspositionId;
|
||||||
|
bestellungsposition.Menge = item.Value;
|
||||||
|
// make a new date with hour and minute
|
||||||
|
DateTime abholzeit = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hour, minute, 0);
|
||||||
|
bestellungsposition.Datum = abholzeit;
|
||||||
|
// latest possible rabatt
|
||||||
|
bestellungsposition.RabattIdrabatt = rabatt.Idrabatt;
|
||||||
|
bestellungsposition.KundeIdkunde = kunde.Idkunde;
|
||||||
|
|
||||||
|
Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionen", bestellungsposition);
|
||||||
|
|
||||||
|
//Add menuitems to bestellungspositionHasMenuItem
|
||||||
|
BestellungspositionHasMenuitem bestellungspositionHasMenuItem = new BestellungspositionHasMenuitem();
|
||||||
|
bestellungspositionHasMenuItem.Bestellungsposition_IDBestellung = bestellungsposition.Idbestellung;
|
||||||
|
bestellungspositionHasMenuItem.MenuItem_IDMenuItem = item.Key;
|
||||||
|
|
||||||
|
Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionhasmenuitems", bestellungspositionHasMenuItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete all localStorage
|
||||||
|
localStorage.SetItem("MenuItemIds", new Dictionary<int, int>());
|
||||||
|
localStorage.SetItem("Hour", 0);
|
||||||
|
localStorage.SetItem("Minute", 0);
|
||||||
|
localStorage.SetItem("Summe", 0);
|
||||||
|
localStorage.SetItem("RabattEinloesen", false);
|
||||||
|
|
||||||
|
_navigationManager.NavigateTo("/Bestellbestätigung");
|
||||||
|
}
|
||||||
|
|
||||||
|
// allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt
|
||||||
|
private List<Allergie> allergien = new List<Allergie>();
|
||||||
|
private List<Bestellungsposition> bestellungspositions = new List<Bestellungsposition>();
|
||||||
|
private List<Menuitem> menuitems = new List<Menuitem>();
|
||||||
|
private List<Menuitemkategorie> menuitemkategories = new List<Menuitemkategorie>();
|
||||||
|
private List<Menuitemueberkategorie> menuitemueberkategories = new List<Menuitemueberkategorie>();
|
||||||
|
private List<BestellungspositionHasMenuitem> bestellungspositionHasMenuitems = new List<BestellungspositionHasMenuitem>();
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
// get data from api
|
||||||
|
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||||
|
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||||
|
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||||
|
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||||
|
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||||
|
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||||
|
rabatte = await Http.GetFromJsonAsync<List<Rabatt>>("https://localhost:7076/api/Rabatte");
|
||||||
|
bestellungspositionHasMenuitems = await Http.GetFromJsonAsync<List<BestellungspositionHasMenuitem>>("https://localhost:7076/api/BestellungspositionHasMenuitems");
|
||||||
|
|
||||||
|
// test use the first kunde
|
||||||
|
kunde = kunden[0];
|
||||||
|
|
||||||
|
// get the most recent rabatt, that are still valid (GueltigkeitBis)
|
||||||
|
// if there is no rabatt, set the rabatt to null
|
||||||
|
if (rabatte.Count == 0)
|
||||||
|
{
|
||||||
|
rabatt = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < rabatte.Count; i++)
|
||||||
|
{
|
||||||
|
if (rabatte[i].GueltigkeitBis > DateTime.Now)
|
||||||
|
{
|
||||||
|
rabatt = rabatte[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get data from localstorage
|
||||||
|
if (localStorage.GetItem<Dictionary<int, int>>("MenuItemIds") != null)
|
||||||
|
{
|
||||||
|
menuitemIds = localStorage.GetItem<Dictionary<int, int>>("MenuItemIds");
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate the sum of all menuitems
|
||||||
|
summe = 0;
|
||||||
|
foreach (var item in menuitemIds)
|
||||||
|
{
|
||||||
|
foreach (var item2 in menuitems)
|
||||||
|
{
|
||||||
|
if (item.Key == item2.IdmenuItem)
|
||||||
|
{
|
||||||
|
summe += item2.Preis * item.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if hour/minute is set, set the values
|
||||||
|
if (localStorage.GetItem<int>("Hour") != 0)
|
||||||
|
{
|
||||||
|
hour = localStorage.GetItem<int>("Hour");
|
||||||
|
}
|
||||||
|
if (localStorage.GetItem<int>("Minute") != 0)
|
||||||
|
{
|
||||||
|
minute = localStorage.GetItem<int>("Minute");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Allergie
|
||||||
|
{
|
||||||
|
public int Idallergie { get; set; }
|
||||||
|
|
||||||
|
public string? Beschreibung { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitem> MenuItemIdmenuItems { get; set; } = new List<Menuitem>();
|
||||||
|
}
|
||||||
|
public class Bestellungsposition
|
||||||
|
{
|
||||||
|
public int Idbestellung { get; set; }
|
||||||
|
|
||||||
|
public int? Menge { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Datum { get; set; }
|
||||||
|
|
||||||
|
public int KundeIdkunde { get; set; }
|
||||||
|
|
||||||
|
public int RabattIdrabatt { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
public class Kunde
|
||||||
|
{
|
||||||
|
public int Idkunde { get; set; }
|
||||||
|
|
||||||
|
public string? Code { get; set; }
|
||||||
|
|
||||||
|
public int? Treuepunkte { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Bestellungsposition> Bestellungspositions { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Menuitem
|
||||||
|
{
|
||||||
|
public int IdmenuItem { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public string? Zusatzinformation { get; set; }
|
||||||
|
|
||||||
|
public decimal Preis { get; set; }
|
||||||
|
|
||||||
|
public int MenuItemKategorieIdmenuItemKategorie { get; set; }
|
||||||
|
|
||||||
|
public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Allergie> AllergieIdallergies { get; set; } = new List<Allergie>();
|
||||||
|
|
||||||
|
public virtual ICollection<Bestellungsposition> BestellungspositionIdbestellungs { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
|
public class Menuitemkategorie
|
||||||
|
{
|
||||||
|
public int IdmenuItemKategorie { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; }
|
||||||
|
|
||||||
|
public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitem> Menuitems { get; set; } = new List<Menuitem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Menuitemueberkategorie
|
||||||
|
{
|
||||||
|
public int IdmenuItemUeberkategorie { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitemkategorie> Menuitemkategories { get; set; } = new List<Menuitemkategorie>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Rabatt
|
||||||
|
{
|
||||||
|
public int Idrabatt { get; set; }
|
||||||
|
|
||||||
|
public decimal Prozent { get; set; }
|
||||||
|
|
||||||
|
public DateTime? GueltigkeitVon { get; set; }
|
||||||
|
|
||||||
|
public DateTime? GueltigkeitBis { get; set; }
|
||||||
|
|
||||||
|
public bool Einloesen { get; set; }
|
||||||
|
public virtual ICollection<Bestellungsposition> Bestellungspositions { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class BestellungspositionHasMenuitem
|
||||||
|
{
|
||||||
|
public int? Bestellungsposition_IDBestellung { get; set; }
|
||||||
|
public int? MenuItem_IDMenuItem { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -1,38 +1,236 @@
|
|||||||
@page "/Bestellbestätigung"
|
@page "/Bestellbestätigung"
|
||||||
|
|
||||||
|
@inject HttpClient Http
|
||||||
|
@inject Blazored.LocalStorage.ISyncLocalStorageService localStorage
|
||||||
|
@inject NavigationManager _navigationManager
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
||||||
<h5>Vielen Dank für Ihre Bestellung</h5><br>
|
<h5>Vielen Dank für Ihre Bestellung</h5><br>
|
||||||
<p class="text">
|
<p class="text">
|
||||||
Ihr Essen ist in <b>30 Minuten</b> abholbereit.
|
<strong>Ihr Essen ist heute um @hour:@minute abholbereit.</strong>
|
||||||
Sie erhalten eine Benachrichtigung sobald das Essen fertig ist. Wir würden uns freuen, wenn Sie uns ein <a href="Feedback">Feedback</a> geben.
|
Sie erhalten eine Benachrichtigung sobald das Essen fertig ist. Wir würden uns freuen, wenn Sie uns ein <a href="Feedback">Feedback</a> geben.
|
||||||
<br><br><br><br>
|
<br><br><br><br>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div class="progress-bar bg-warning progress-bar-striped progress-bar-animated" style="width:50%"></div>
|
<div class="progress-bar bg-warning progress-bar-striped progress-bar-animated" style="width:10%"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
|
|
||||||
<tr class="loadtext">
|
<tr class="loadtext">
|
||||||
<td>Bestellung eingegangen</td>
|
<td>Bestellung eingegangen</td>
|
||||||
<td class="load2">Bestellung wird zubereitet</td>
|
<td class="load2">Bestellung wird zubereitet</td>
|
||||||
<td class="load3">Essen abholbereit</td>
|
<td class="load3">Essen abholbereit</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="button">
|
|
||||||
<br><br><br><br>
|
|
||||||
<form id="button1" action="/">
|
|
||||||
<input type="submit" value="Zur Startseite" class="btn">
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
<div class="button">
|
||||||
|
<br><br><br><br>
|
||||||
|
<form id="button1" action="/">
|
||||||
|
<input type="submit" value="Bestellungsübersicht" class="btn">
|
||||||
|
@*<input type="submit" value="Zur Startseite" class="btn">*@
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
@code {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@code {
|
||||||
|
private List<Kunde> kunden = new List<Kunde>();
|
||||||
|
private Kunde kunde = new Kunde();
|
||||||
|
|
||||||
|
private List<Rabatt> rabatte = new List<Rabatt>();
|
||||||
|
private Rabatt rabatt = new Rabatt();
|
||||||
|
private bool rabattEinloesen;
|
||||||
|
|
||||||
|
public Dictionary<int, int> menuitemIds = new Dictionary<int, int>();
|
||||||
|
|
||||||
|
public int hour;
|
||||||
|
public int minute;
|
||||||
|
|
||||||
|
public decimal summe;
|
||||||
|
|
||||||
|
public void Vorbestellen()
|
||||||
|
{
|
||||||
|
// set rabattEinloesen
|
||||||
|
if (rabattEinloesen)
|
||||||
|
localStorage.SetItem("RabattEinloesen", true);
|
||||||
|
else
|
||||||
|
localStorage.SetItem("RabattEinloesen", false);
|
||||||
|
|
||||||
|
_navigationManager.NavigateTo("/Bestellbestätigung");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt
|
||||||
|
private List<Allergie> allergien = new List<Allergie>();
|
||||||
|
private List<Bestellungsposition> bestellungspositions = new List<Bestellungsposition>();
|
||||||
|
private List<Menuitem> menuitems = new List<Menuitem>();
|
||||||
|
private List<Menuitemkategorie> menuitemkategories = new List<Menuitemkategorie>();
|
||||||
|
private List<Menuitemueberkategorie> menuitemueberkategories = new List<Menuitemueberkategorie>();
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
// get data from api
|
||||||
|
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||||
|
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||||
|
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||||
|
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||||
|
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||||
|
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||||
|
rabatte = await Http.GetFromJsonAsync<List<Rabatt>>("https://localhost:7076/api/Rabatte");
|
||||||
|
|
||||||
|
// test use the first kunde
|
||||||
|
kunde = kunden[0];
|
||||||
|
|
||||||
|
// get the most recent rabatt, that are still valid (GueltigkeitBis)
|
||||||
|
// if there is no rabatt, set the rabatt to null
|
||||||
|
if (rabatte.Count == 0)
|
||||||
|
{
|
||||||
|
rabatt = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < rabatte.Count; i++)
|
||||||
|
{
|
||||||
|
if (rabatte[i].GueltigkeitBis > DateTime.Now)
|
||||||
|
{
|
||||||
|
rabatt = rabatte[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get data from localstorage
|
||||||
|
if (localStorage.GetItem<Dictionary<int, int>>("MenuItemIds") != null)
|
||||||
|
{
|
||||||
|
menuitemIds = localStorage.GetItem<Dictionary<int, int>>("MenuItemIds");
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate the sum of all menuitems
|
||||||
|
summe = 0;
|
||||||
|
foreach (var item in menuitemIds)
|
||||||
|
{
|
||||||
|
foreach (var item2 in menuitems)
|
||||||
|
{
|
||||||
|
if (item.Key == item2.IdmenuItem)
|
||||||
|
{
|
||||||
|
summe += item2.Preis * item.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if hour/minute is set, set the values
|
||||||
|
if (localStorage.GetItem<int>("Hour") != 0)
|
||||||
|
{
|
||||||
|
hour = localStorage.GetItem<int>("Hour");
|
||||||
|
}
|
||||||
|
if (localStorage.GetItem<int>("Minute") != 0)
|
||||||
|
{
|
||||||
|
minute = localStorage.GetItem<int>("Minute");
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Allergie
|
||||||
|
{
|
||||||
|
public int Idallergie { get; set; }
|
||||||
|
|
||||||
|
public string? Beschreibung { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitem> MenuItemIdmenuItems { get; set; } = new List<Menuitem>();
|
||||||
|
}
|
||||||
|
public class Bestellungsposition
|
||||||
|
{
|
||||||
|
public int Idbestellung { get; set; }
|
||||||
|
|
||||||
|
public int? Menge { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Datum { get; set; }
|
||||||
|
|
||||||
|
public int KundeIdkunde { get; set; }
|
||||||
|
|
||||||
|
public int RabattIdrabatt { get; set; }
|
||||||
|
|
||||||
|
public virtual Kunde KundeIdkundeNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitem> MenuItemIdmenuItems { get; set; } = new List<Menuitem>();
|
||||||
|
}
|
||||||
|
public class Kunde
|
||||||
|
{
|
||||||
|
public int Idkunde { get; set; }
|
||||||
|
|
||||||
|
public string? Code { get; set; }
|
||||||
|
|
||||||
|
public int? Treuepunkte { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Bestellungsposition> Bestellungspositions { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Menuitem
|
||||||
|
{
|
||||||
|
public int IdmenuItem { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public string? Zusatzinformation { get; set; }
|
||||||
|
|
||||||
|
public decimal Preis { get; set; }
|
||||||
|
|
||||||
|
public int MenuItemKategorieIdmenuItemKategorie { get; set; }
|
||||||
|
|
||||||
|
public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Allergie> AllergieIdallergies { get; set; } = new List<Allergie>();
|
||||||
|
|
||||||
|
public virtual ICollection<Bestellungsposition> BestellungspositionIdbestellungs { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
|
public class Menuitemkategorie
|
||||||
|
{
|
||||||
|
public int IdmenuItemKategorie { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; }
|
||||||
|
|
||||||
|
public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitem> Menuitems { get; set; } = new List<Menuitem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Menuitemueberkategorie
|
||||||
|
{
|
||||||
|
public int IdmenuItemUeberkategorie { get; set; }
|
||||||
|
|
||||||
|
public string? Bezeichnung { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<Menuitemkategorie> Menuitemkategories { get; set; } = new List<Menuitemkategorie>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Rabatt
|
||||||
|
{
|
||||||
|
public int Idrabatt { get; set; }
|
||||||
|
|
||||||
|
public decimal? Prozent { get; set; }
|
||||||
|
|
||||||
|
public DateTime? GueltigkeitVon { get; set; }
|
||||||
|
|
||||||
|
public DateTime? GueltigkeitBis { get; set; }
|
||||||
|
|
||||||
|
public bool Einloesen { get; set; }
|
||||||
|
public virtual ICollection<Bestellungsposition> Bestellungspositions { get; set; } = new List<Bestellungsposition>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="container mt-auto">
|
||||||
|
<h1>Bestellübersicht</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
Loading…
Reference in New Issue
Block a user