209 lines
7.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|