private void CreateOrder(ProjectClient selectedItem) { #if SILVERLIGHT var cwCreateOrder = new CWCreateOrderFromProject(api); #else var cwCreateOrder = new UnicontaClient.Pages.CWCreateOrderFromProject(api, true, selectedItem); cwCreateOrder.DialogTableId = 2000000053; #endif cwCreateOrder.Closed += async delegate { if (cwCreateOrder.DialogResult == true) { busyIndicator.BusyContent = Uniconta.ClientTools.Localization.lookup("LoadingMsg"); busyIndicator.IsBusy = true; var debtorOrderInstance = api.CompanyEntity.CreateUserType <DebtorOrderClient>(); var invoiceApi = new Uniconta.API.Project.InvoiceAPI(api); var result = await invoiceApi.CreateOrderFromProject(debtorOrderInstance, selectedItem._Number, CWCreateOrderFromProject.InvoiceCategory, CWCreateOrderFromProject.GenrateDate, CWCreateOrderFromProject.FromDate, CWCreateOrderFromProject.ToDate, cwCreateOrder.ProjectTask); busyIndicator.IsBusy = false; if (result != ErrorCodes.Succes) { if (result == ErrorCodes.NoLinesToUpdate) { var message = string.Format("{0}. {1}?", Uniconta.ClientTools.Localization.lookup(result.ToString()), string.Format(Uniconta.ClientTools.Localization.lookup("CreateOBJ"), Uniconta.ClientTools.Localization.lookup("Order"))); var res = UnicontaMessageBox.Show(message, Uniconta.ClientTools.Localization.lookup("Message"), UnicontaMessageBox.YesNo); if (res == MessageBoxResult.Yes) { debtorOrderInstance.SetMaster(selectedItem); debtorOrderInstance._PrCategory = CWCreateOrderFromProject.InvoiceCategory; debtorOrderInstance._NoItemUpdate = true; var er = await api.Insert(debtorOrderInstance); if (er == ErrorCodes.Succes) { ShowOrderLines(debtorOrderInstance); } } } else { UtilDisplay.ShowErrorCode(result); } } else { ShowOrderLines(debtorOrderInstance); } } }; cwCreateOrder.Show(); }
private void CreateMulitOrder(bool IsMultiOrder = true) { var cwCreateOrder = new CWCreateOrderFromProject(api); #if !SILVERLIGHT cwCreateOrder.DialogTableId = 2000000052; #endif cwCreateOrder.Closed += async delegate { if (cwCreateOrder.DialogResult == true) { busyIndicator.BusyContent = Uniconta.ClientTools.Localization.lookup("LoadingMsg"); busyIndicator.IsBusy = true; IList projectList = null; if (!IsMultiOrder) { var Arr = Array.CreateInstance(dgProjectMultiLineGrid.TableTypeUser, 1); Arr.SetValue(dgProjectMultiLineGrid.SelectedItem, 0); projectList = Arr; } else { projectList = dgProjectMultiLineGrid.GetVisibleRows(); } var invoiceApi = new Uniconta.API.Project.InvoiceAPI(api); var debtorOrderType = api.CompanyEntity.GetUserTypeNotNull(typeof(DebtorOrderClient)); var errorlist = new List <string>(); DebtorOrderClient debtorOrderInstance = null; foreach (var proj in projectList) { var selectedItem = proj as ProjectClient; debtorOrderInstance = Activator.CreateInstance(debtorOrderType) as DebtorOrderClient; var result = await invoiceApi.CreateOrderFromProject(debtorOrderInstance, selectedItem._Number, CWCreateOrderFromProject.InvoiceCategory, CWCreateOrderFromProject.GenrateDate, CWCreateOrderFromProject.FromDate, CWCreateOrderFromProject.ToDate); if (result != Uniconta.Common.ErrorCodes.Succes) { var error = string.Format("{0}: {1} - {2}", Uniconta.ClientTools.Localization.lookup("Project"), selectedItem._Number, Uniconta.ClientTools.Localization.lookup(result.ToString())); errorlist.Add(error); } } busyIndicator.IsBusy = false; if (errorlist.Count > 1) { var errorDialog = new CWErrorBox(errorlist.ToArray(), true); errorDialog.Show(); } else if (!IsMultiOrder && errorlist.Count == 0) { ShowOrderLines(debtorOrderInstance); } else if (errorlist.Count == 1) { UnicontaMessageBox.Show(errorlist[0], Uniconta.ClientTools.Localization.lookup("Error"), MessageBoxButton.OK); } else { UnicontaMessageBox.Show(Uniconta.ClientTools.Localization.lookup("SalesOrderCreated"), Uniconta.ClientTools.Localization.lookup("Message"), MessageBoxButton.OK); } } }; cwCreateOrder.Show(); }