Files
BeWoPlaner/BeWo/View/Controls/CustomerVermittlungArbeitControl.xaml.cs
2025-08-12 23:06:22 +02:00

209 lines
7.6 KiB
C#

using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View.Detail;
using BeWo.ViewModel;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaktionslogik für CustomerVermittlungArbeitControl.xaml
/// </summary>
public partial class CustomerVermittlungArbeitControl : UserControl
{
private long newPersonOid = 0;
public bool PermissionCustomerGemeinnutzigeArbeitManage { get; } = BeWoApp.HasLoggedOnUserRight(BS.Shared.UserRightType.Customer_GemeinnutzigeArbeit_Manage);
public CustomerVermittlungArbeitControl()
{
InitializeComponent();
}
public CustomerVermittlungArbeitVM ViewModel
{
get
{
return this.DataContext as CustomerVermittlungArbeitVM;
}
set
{
this.DataContext = value;
}
}
private void popupedit_AuftraggeberContactPersonSearch_NewClick(object sender, RoutedEventArgs e)
{
if (ViewModel.IsNew)
{
MessageBox.Show("Bevor Sie eine neue Person anlegen können, muss dieser Datensatz zuerst gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
else
{
newPersonOid = 0L;
VMFactory.CreatePersonVMAsync(
cb => this.Dispatch(
() => BeWoUtils.OpenModalViewWindow<PersonVM, PersonDC, CustomerView>(cb, null, () => this.Dispatch(
delegate
{
if (newPersonOid > 0)
{
var newPerson = new CompactPersonDC();
ServiceFacade.DoCustomerServiceSync(s => newPerson = s.LoadPersonCompact(newPersonOid));
//ViewModel.AuftraggeberAnsprechpartner = null; //Sonst wird es nicht dirty:-(
ViewModel.AuftraggeberAnsprechpartner = newPerson;
personsearchview.ObjectList.Add(newPerson);
}
}
), personSavedOrUpdated: personModalPopUp_PersonSavedOrUpdated)));
}
}
private void popupedit_AuftraggeberContactPersonSearch_DeleteClick(object sender, RoutedEventArgs e)
{
ViewModel.AuftraggeberAnsprechpartner = null;
}
private void popupedit_AuftraggeberContactPersonSearch_PopUpClick(object sender, RoutedEventArgs e)
{
personsearchview.ItemSelected += personsearchview_AuftraggeberContactPersonSelected;
popup_person.IsOpen = true;
}
private void personsearchview_AuftraggeberContactPersonSelected(object sender, EventArgs<CompactPersonDC> e)
{
popup_person.IsOpen = false;
personsearchview.ItemSelected -= personsearchview_AuftraggeberContactPersonSelected;
ViewModel.AuftraggeberAnsprechpartner = e.Data;
}
private void popupedit_EinsatzstelleContactPersonSearch_NewClick(object sender, RoutedEventArgs e)
{
if (ViewModel.IsNew)
{
MessageBox.Show("Bevor Sie eine neue Person anlegen können, muss dieser Datensatz zuerst gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
else
{
newPersonOid = 0L;
VMFactory.CreatePersonVMAsync(
cb => this.Dispatch(
() => BeWoUtils.OpenModalViewWindow<PersonVM, PersonDC, CustomerView>(cb, null, () => this.Dispatch(
delegate
{
if (newPersonOid > 0)
{
var newPerson = new CompactPersonDC();
ServiceFacade.DoCustomerServiceSync(s => newPerson = s.LoadPersonCompact(newPersonOid));
//ViewModel.AuftraggeberAnsprechpartner = null; //Sonst wird es nicht dirty:-(
ViewModel.EinsatzstelleAnsprechpartner = newPerson;
personsearchview.ObjectList.Add(newPerson);
}
}
), personSavedOrUpdated: personModalPopUp_PersonSavedOrUpdated)));
}
}
private void popupedit_EinsatzstelleContactPersonSearch_DeleteClick(object sender, RoutedEventArgs e)
{
ViewModel.EinsatzstelleAnsprechpartner = null;
}
private void popupedit_EinsatzstelleContactPersonSearch_PopUpClick(object sender, RoutedEventArgs e)
{
personsearchview.ItemSelected += personsearchview_EinsatzstelleContactPersonSelected;
popup_person.IsOpen = true;
}
private void personsearchview_EinsatzstelleContactPersonSelected(object sender, EventArgs<CompactPersonDC> e)
{
popup_person.IsOpen = false;
personsearchview.ItemSelected -= personsearchview_EinsatzstelleContactPersonSelected;
ViewModel.EinsatzstelleAnsprechpartner = e.Data;
}
private void personModalPopUp_PersonSavedOrUpdated(object sender, EventArgs<PersonVM> e)
{
if (e.Data != null && e.Data.DataContract.PersonOid.HasValue)
{
newPersonOid = e.Data.DataContract.PersonOid.Value;
}
}
private void popupedit_Einsatzstelle_DeleteClick(object sender, RoutedEventArgs e)
{
ViewModel.Einsatzstelle = null;
}
private void popupedit_Einsatzstelle_PopUpClick(object sender, RoutedEventArgs e)
{
costbearersearchview.ItemSelected += organisationsearchview_EinsatzstelleSelected;
popup_costbearer.IsOpen = true;
}
private void organisationsearchview_EinsatzstelleSelected(object sender, EventArgs<CompactOrganisationDC> e)
{
popup_costbearer.IsOpen = false;
costbearersearchview.ItemSelected -= organisationsearchview_EinsatzstelleSelected;
ViewModel.Einsatzstelle = e.Data;
}
private void popupedit_Auftraggeber_DeleteClick(object sender, RoutedEventArgs e)
{
ViewModel.Auftraggeber = null;
}
private void popupedit_Auftraggeber_PopUpClick(object sender, RoutedEventArgs e)
{
costbearersearchview.ItemSelected += organisationsearchview_AuftraggeberSelected;
popup_costbearer.IsOpen = true;
}
private void organisationsearchview_AuftraggeberSelected(object sender, EventArgs<CompactOrganisationDC> e)
{
popup_costbearer.IsOpen = false;
costbearersearchview.ItemSelected -= organisationsearchview_AuftraggeberSelected;
ViewModel.Auftraggeber = e.Data;
}
}
}