319 lines
11 KiB
C#
319 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
|
|
using BeWo.Controls;
|
|
using BeWo.Core;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.Validation;
|
|
using BeWo.View.Search;
|
|
using BeWo.ViewModel;
|
|
using BeWo.ViewModel.ListViewModel;
|
|
using BeWo.Core.Service;
|
|
|
|
using BS.Shared;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.Services;
|
|
using BS.Shared.Translation;
|
|
using DevExpress.Xpf.RichEdit;
|
|
using SupportConceptService = BeWo.Core.Service.SupportConceptService;
|
|
using System.Linq;
|
|
using DevExpress.Xpf.Grid;
|
|
using System.Windows.Media.Imaging;
|
|
using DevExpress.Utils;
|
|
|
|
namespace BeWo.View.Document
|
|
{
|
|
public partial class TemplatePrintSelection
|
|
{
|
|
public event Action ButtonCreateClicked;
|
|
public event Action ButtonCreateForSelectionClicked;
|
|
public event Action ButtonCreateForAllClicked;
|
|
public event Action ButtonCancelClicked;
|
|
|
|
public DocumentTreeItemVM selectedFolder = null;
|
|
|
|
public TemplatePrintSelection()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void InitView(long? tabelle)
|
|
{
|
|
InitializeComponent();
|
|
|
|
List<PrintSelectionVM> vms = new List<PrintSelectionVM>();
|
|
|
|
switch (tabelle)
|
|
{
|
|
case 2: vms = GetEmployee(); break;
|
|
case 8: vms = GetCustomers(); break;
|
|
case 15: vms = GetSupportConcepts(); break;
|
|
}
|
|
|
|
List<PrintSelectionVM> sortedList = vms.OrderBy(vm => vm.LastName).ToList();
|
|
datagrid_enabled_for_template.ItemsSource = sortedList;
|
|
combobox_elementList.ItemsSource = sortedList;
|
|
|
|
datagrid_enabled_for_template.SelectedItem = null;
|
|
|
|
Focus();
|
|
}
|
|
|
|
private List<PrintSelectionVM> GetEmployee()
|
|
{
|
|
var DCs = VMFactory.CreateEmployeeList();
|
|
|
|
List<PrintSelectionVM> list = new List<PrintSelectionVM>();
|
|
|
|
foreach (var e in DCs)
|
|
{
|
|
list.Add(new PrintSelectionVM(e.LastName, e.FirstName, 2, e.EmployeeOid));
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|
|
private List<PrintSelectionVM> GetCustomers()
|
|
{
|
|
var DCs = VMFactory.CreateCustomerList();
|
|
|
|
List<PrintSelectionVM> list = new List<PrintSelectionVM>();
|
|
|
|
foreach (var c in DCs)
|
|
{
|
|
list.Add(new PrintSelectionVM(c.LastName, c.FirstName, 8, c.CustomerOid));
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|
|
private List<PrintSelectionVM> GetSupportConcepts()
|
|
{
|
|
var DCs = VMFactory.CreateSupportConceptList();
|
|
|
|
List<PrintSelectionVM> list = new List<PrintSelectionVM>();
|
|
|
|
foreach (var s in DCs)
|
|
{
|
|
string[] dateAndTime = s.StartDate.ToString().Split(' ');
|
|
list.Add(new PrintSelectionVM(s.LastName + " (" + dateAndTime[0] + ")", s.FirstName, 15, s.SupportConceptOid));
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|
|
private void Button_CreateTemplateBasedDocument_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
selectedFolder = null;
|
|
|
|
var selected = GetSelectedElements();
|
|
|
|
if (selected == null || selected.Count == 0)
|
|
{
|
|
MessageBox.Show("Es muss mindestens ein Datensatz ausgewählt werden.", "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
return;
|
|
}
|
|
|
|
ButtonCreateClicked?.Invoke();
|
|
}
|
|
private void Button_CreateTemplateForSelection_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var selected = combobox_elementList.SelectedItem as PrintSelectionVM;
|
|
|
|
if (selected == null)
|
|
{
|
|
MessageBox.Show("Es muss ein Datensatz ausgewählt werden.", "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
return;
|
|
}
|
|
|
|
|
|
ButtonCreateForSelectionClicked?.Invoke();
|
|
}
|
|
|
|
//private void Button_CreateTemplateBasedDocumentForAll_Click(object sender, RoutedEventArgs e)
|
|
//{
|
|
// var selected = datagrid_enabled_for_template.ItemsSource as List<PrintSelectionVM>;
|
|
|
|
// ButtonCreateForAllClicked?.Invoke();
|
|
//}
|
|
|
|
private void Button_Cancel_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
ButtonCancelClicked?.Invoke();
|
|
}
|
|
|
|
public List<PrintSelectionVM> GetSelectedElements()
|
|
{
|
|
var t = datagrid_enabled_for_template.ItemsSource as List<PrintSelectionVM>;
|
|
List<PrintSelectionVM> vms = new List<PrintSelectionVM>();
|
|
|
|
foreach (var item in t)
|
|
{
|
|
if(item.Selected)
|
|
vms.Add(item);
|
|
}
|
|
|
|
return vms;
|
|
}
|
|
|
|
private void Button_SelectAll_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var t = datagrid_enabled_for_template.ItemsSource as List<PrintSelectionVM>;
|
|
List<PrintSelectionVM> vms = new List<PrintSelectionVM>();
|
|
|
|
foreach (var item in t)
|
|
{
|
|
item.Selected = true;
|
|
vms.Add(item);
|
|
}
|
|
|
|
//datagrid_enabled_for_template.ItemsSource = null;
|
|
datagrid_enabled_for_template.ItemsSource = vms;
|
|
}
|
|
|
|
private void Button_UnselectAll_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var t = datagrid_enabled_for_template.ItemsSource as List<PrintSelectionVM>;
|
|
List<PrintSelectionVM> vms = new List<PrintSelectionVM>();
|
|
|
|
foreach (var item in t)
|
|
{
|
|
item.Selected = false;
|
|
vms.Add(item);
|
|
}
|
|
|
|
//datagrid_enabled_for_template.ItemsSource = null;
|
|
datagrid_enabled_for_template.ItemsSource = vms;
|
|
}
|
|
|
|
private void CheckBox_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
treelistcontrol_folderStructureForSelection.Visibility = Visibility.Visible;
|
|
}
|
|
|
|
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
|
|
{
|
|
selectedFolder = null;
|
|
treelistcontrol_folderStructureForSelection.Visibility = Visibility.Collapsed;
|
|
}
|
|
private void combobox_elementList_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
var selection = combobox_elementList.SelectedItem as PrintSelectionVM;
|
|
var objectOid = selection.ObjectOid;
|
|
TableID tid = TableID.Employee;
|
|
switch(selection.Table)
|
|
{
|
|
case 2: tid = TableID.Employee;break;
|
|
case 8: tid = TableID.Customer;break;
|
|
case 15: tid = TableID.SupportConcept;break;
|
|
}
|
|
var folderDCs = VMFactory.CreateFolderList(tid, (long)objectOid);
|
|
|
|
for (int i = DocumentsTreeView_folderStructureForSelection.Nodes.Count - 1; i >= 0; i--)
|
|
DocumentsTreeView_folderStructureForSelection.Nodes.Remove(DocumentsTreeView_folderStructureForSelection.Nodes[i]);
|
|
|
|
GenerateFolderStructure(tid, null, folderDCs);
|
|
}
|
|
private void GenerateFolderStructure(TableID table, TreeListNode node, List<BeWoFolderDC> folderDCs)
|
|
{
|
|
|
|
if (node == null)
|
|
{
|
|
node = new TreeListNode()
|
|
{
|
|
IsExpandButtonVisible = DefaultBoolean.True,
|
|
Tag = false,
|
|
Image = LoadFolderImage()
|
|
};
|
|
}
|
|
|
|
var content = node.Content as DocumentTreeItemVM;
|
|
|
|
foreach (var folder in folderDCs)
|
|
{
|
|
//Falls kein übergeordneter Knoten exisitert
|
|
//if(content == null)
|
|
//{
|
|
// PrintSelectionVM selected = combobox_elementList.SelectedItem as PrintSelectionVM;
|
|
// var dc = new DocumentTreeItemDC()
|
|
// {
|
|
// DocTreeItemOid = 0,
|
|
// ParentOid = null,
|
|
// Name = "Alle Ordner",
|
|
// Table = table
|
|
// };
|
|
// content = new DocumentTreeItemVM(dc);
|
|
// node.Content = content;
|
|
// DocumentsTreeView_folderStructureForSelection.Nodes.Add(node);
|
|
//}
|
|
|
|
PrintSelectionVM selected = combobox_elementList.SelectedItem as PrintSelectionVM;
|
|
DocumentTreeItemDC folder_dc = new DocumentTreeItemDC()
|
|
{
|
|
DocTreeItemOid = folder.BeWoFolderOid,
|
|
ParentOid = null,
|
|
Name = folder.Name,
|
|
FilesInFolder = new List<FileAttachmentDC>(),
|
|
BeWoFolderDC = folder,
|
|
Table = table,
|
|
ObjectOid = selected.ObjectOid
|
|
};
|
|
if (content != null)
|
|
folder_dc.ParentOid = content.DocTreeItemOid;
|
|
DocumentTreeItemVM folder_vm = new DocumentTreeItemVM(folder_dc);
|
|
TreeListNode newNode_folder = new TreeListNode()
|
|
{
|
|
Content = folder_vm,
|
|
IsExpandButtonVisible = DefaultBoolean.True,
|
|
Tag = false,
|
|
Image = LoadFolderImage()
|
|
};
|
|
folder_dc.Node = newNode_folder;
|
|
|
|
if(node.Content == null)
|
|
DocumentsTreeView_folderStructureForSelection.Nodes.Add(newNode_folder);
|
|
else
|
|
node.Nodes.Add(newNode_folder);
|
|
|
|
if (folder.SubFolders.Count != 0)
|
|
{
|
|
GenerateFolderStructure(table, newNode_folder, folder.SubFolders);
|
|
}
|
|
}
|
|
}
|
|
private BitmapImage LoadFolderImage()
|
|
{
|
|
return new BitmapImage(new Uri("/Ressources/Icons/Folder.png", UriKind.Relative));
|
|
}
|
|
|
|
private void DocumentsTreeView_FocusedRowChanged(object sender, DevExpress.Xpf.Grid.FocusedRowChangedEventArgs e)
|
|
{
|
|
//if(DocumentsTreeView_folderStructureForSelection.SelectedRows.Count != 0)
|
|
// selectedFolder = DocumentsTreeView_folderStructureForSelection.SelectedRows[0] as DocumentTreeItemVM;
|
|
}
|
|
|
|
private void DocumentsTreeView_NodeExpanding(object sender, DevExpress.Xpf.Grid.TreeList.TreeListNodeAllowEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void DocumentsTreeView_folderStructureForSelection_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (DocumentsTreeView_folderStructureForSelection.SelectedRows.Count != 0)
|
|
selectedFolder = DocumentsTreeView_folderStructureForSelection.SelectedRows[0] as DocumentTreeItemVM;
|
|
}
|
|
|
|
|
|
|
|
|
|
//public List<PrintSelectionVM> SelectAllElements()
|
|
//{
|
|
// return datagrid_enabled_for_template.ItemsSource as List<PrintSelectionVM>;
|
|
//}
|
|
}
|
|
} |