51 lines
1.8 KiB
C#
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 });
|
|
}
|
|
}
|
|
}
|