Files
lagerprogramm/Views/AdditionsView.axaml.cs
joel.leirer fb1f90a9ca Added Slop
2026-08-25 17:14:54 +02:00

51 lines
1.8 KiB
C#

using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Lagerprogramm.Models;
using Lagerprogramm.ViewModels;
using Avalonia;
using System.Threading.Tasks;
namespace Lagerprogramm.Views;
public partial class AdditionsView : UserControl
{
public AdditionsView()
{
InitializeComponent();
}
private AdditionsViewModel? ViewModel => DataContext as AdditionsViewModel;
private async void OnSearchPart(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
if (ViewModel is null) return;
var button = sender as Button;
var line = button?.CommandParameter as TransactionLine;
if (line is null) return;
var window = TopLevel.GetTopLevel(this) as Window;
if (window is null) return;
var dialog = new PartSearchDialog();
var selectedPart = await dialog.ShowPartSearch(ViewModel.AppData.Parts, window);
if (selectedPart is not null)
line.PartInternalNumber = selectedPart.InternalPartNumber;
}
private async void OnSearchAddition(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
if (ViewModel is null) return;
var window = TopLevel.GetTopLevel(this) as Window;
if (window is null) return;
var dialog = new AdditionSearchDialog();
var selectedAddition = await dialog.ShowAdditionSearch(ViewModel.Additions, window);
if (selectedAddition is not null)
{
ViewModel.Date = selectedAddition.Date;
ViewModel.Comment = selectedAddition.Comment;
ViewModel.Lines.Clear();
foreach (var l in selectedAddition.Lines)
ViewModel.Lines.Add(new TransactionLine { PartInternalNumber = l.PartInternalNumber, Quantity = l.Quantity });
}
}
}