void InitPage(CrudAPI crudapi) { RemoveMenuItem(); BusyIndicator = busyIndicator; dAddress.Header = Uniconta.ClientTools.Localization.lookup("DeliveryAddr"); layoutControl = layoutItems; PrCategorylookupeditor.api = Projectlookupeditor.api = Employeelookupeditor.api = leAccount.api = lePayment.api = cmbDim1.api = cmbDim2.api = cmbDim3.api = cmbDim4.api = cmbDim5.api = leTransType.api = leGroup.api = lePostingAccount.api = leShipment.api = leLayoutGroup.api = leDeliveryTerm.api = leInvoiceAccount.api = PriceListlookupeditior.api = leRelatedOrder.api = leDeliveryAddress.api = leApprover.api = crudapi; cbDeliveryCountry.ItemsSource = Enum.GetValues(typeof(Uniconta.Common.CountryCode)); AdjustLayout(); if (editrow == null) { frmRibbon.DisableButtons("Delete"); liCreatedTime.Visibility = Visibility.Collapsed; editrow = CreateNew() as DebtorOrderClient; if (Debtor != null) { editrow.SetMaster(Debtor); if (editrow.RowId == 0) { SetFieldFromDebtor(Debtor); } leAccount.IsEnabled = txtName.IsEnabled = false; } else if (Project != null) { editrow.SetMaster(Project); leAccount.IsEnabled = txtName.IsEnabled = false; Projectlookupeditor.IsEnabled = false; } } else { BindContact(editrow.Debtor); } if (editrow.LastInvoice == DateTime.MinValue) { txtLastInvoice.Text = string.Empty; } else { txtLastInvoice.Text = editrow.LastInvoice.ToString("d"); } layoutItems.DataContext = editrow; frmRibbon.OnItemClicked += frmRibbon_OnItemClicked; AcItem.ButtonClicked += AcItem_ButtonClicked; #if !SILVERLIGHT txtDelZipCode.EditValueChanged += TxtDelZipCode_EditValueChanged; AcItem.ToolTip = string.Format(Uniconta.ClientTools.Localization.lookup("CreateOBJ"), Uniconta.ClientTools.Localization.lookup("Debtor")); #endif StartLoadCache(); }
public override void RowsPastedDone() { if (Debtor != null) { editrow.SetMaster(Debtor); } else if (Project != null) { editrow.SetMaster(Project); } SetFieldFromDebtor(Debtor); }
async void SetFieldFromDebtor(DebtorOrderClient editrow, Debtor debtor) { if (debtor == null) { return; } var loadedOrder = LoadedRow as DCOrder; editrow.SetMaster(debtor); if (this.Project == null) // no project master { editrow.PricesInclVat = debtor._PricesInclVat; } if (!RecordLoadedFromTemplate || debtor._DeliveryAddress1 != null) { editrow.DeliveryName = debtor._DeliveryName; editrow.DeliveryAddress1 = debtor._DeliveryAddress1; editrow.DeliveryAddress2 = debtor._DeliveryAddress2; editrow.DeliveryAddress3 = debtor._DeliveryAddress3; editrow.DeliveryCity = debtor._DeliveryCity; if (editrow.DeliveryZipCode != debtor._DeliveryZipCode) { lookupZipCode = false; editrow.DeliveryZipCode = debtor._DeliveryZipCode; } if (debtor._DeliveryCountry != 0) { editrow.DeliveryCountry = debtor._DeliveryCountry; } else { editrow.DeliveryCountry = null; } } if (ProjectCache != null) { Projectlookupeditor.cache = ProjectCache; } TableField.SetUserFieldsFromRecord(debtor, editrow); BindContact(debtor); if (installationCache != null) { leDeliveryAddress.cacheFilter = new AccountCacheFilter(installationCache, 1, debtor._Account); leDeliveryAddress.InvalidCache(); } layoutItems.DataContext = null; layoutItems.DataContext = editrow; await api.Read(debtor); editrow.RefreshBalance(); }
public ErrorCodes Execute(UnicontaBaseEntity master, UnicontaBaseEntity currentRow, IEnumerable <UnicontaBaseEntity> source, string command, string args) { var lines = GetFileContents(GetFileName()); var order = new DebtorOrderClient(); order.SetMaster(currentRow as DebtorClient); var orderResult = _crudAPI.Insert(order).Result; if (orderResult == ErrorCodes.Succes) { return(CreateLines(lines, order)); } else { return(orderResult); } }
private ErrorCodes CreateLines(List <string[]> lines, DebtorClient debtorClient) { var ols = new List <DebtorOrderLineClient>(); var items = _crudAPI.Query <InvItemClient>().Result; var order = new DebtorOrderClient(); order.SetMaster(debtorClient); var orderres = _crudAPI.Insert(order).Result; foreach (string[] s in lines) { var item = items.First(i => i.Item == s[1]); var fp = new FindPrices(order, _crudAPI); fp.UseCustomerPrices = true; fp.loadPriceList(); var ol = new DebtorOrderLineClient { Qty = double.Parse(s[2]), Item = item.Item, //Date = DateTime.Parse(s[3]), }; ol.SetMaster(order); fp.SetPriceFromItem(ol, item); ols.Add(ol); } var result = _crudAPI.Insert(ols).Result; if (result == ErrorCodes.Succes) { openOrderLines(order); } return(result); }
private async void createLines(List <string[]> lines) { var orders = new List <DebtorOrderClient>(); var ols = new List <DebtorOrderLineClient>(); var items = await crudAPI.Query <InvItemClient>(); var debtors = await crudAPI.Query <DebtorClient>(); foreach (string[] s in lines) { DebtorOrderClient order; order = orders.Where(o => o.Account == s[0]).FirstOrDefault(); if (order == null) { order = new DebtorOrderClient(); order.SetMaster(debtors.Where(d => d.Account == s[0]).First()); orders.Add(order); var orderres = await crudAPI.Insert(order); } var item = items.Where(i => i.Item == s[1]).First(); var fp = new FindPrices(order, crudAPI); fp.UseCustomerPrices = true; fp.loadPriceList(); var ol = new DebtorOrderLineClient { Qty = double.Parse(s[2]), Item = item.Item, Date = DateTime.Parse(s[3]), }; ol.SetMaster(order); fp.SetPriceFromItem(ol, item); await crudAPI.Insert(ol); } }
private async void Button_Click(object sender, RoutedEventArgs e) { var debtor = this.CB_Customer.SelectedItem as DebtorClient; var invoiceAPI = UnicontaAPIManager.GetInvoiceAPI(); // Creating DebtorOrder var debtorOrder = new DebtorOrderClient { _Currency = Currencies.DKK, }; debtorOrder.SetMaster(debtor); // Creating DebtorOrderLine's var debtorOrderLines = new List <DebtorOrderLineClient>(); var debtorOrderLine = new DebtorOrderLineClient { _Item = "OnSiteSupport", _Qty = 2.0, _Price = 890, }; debtorOrderLine.SetMaster(debtorOrder); debtorOrderLines.Add(debtorOrderLine); // Calling Invoice API. var invoiceResult = await invoiceAPI.PostInvoice(debtorOrder, debtorOrderLines, DateTime.Now, 0, false, SendEmail : true, Emails : "*****@*****.**", OnlyToThisEmail : true); if (invoiceResult.Err != ErrorCodes.Succes) { MessageBox.Show($"Failed to send invoice: {invoiceResult.Err.ToString()}"); return; } MessageBox.Show($"Invoice has been send InvoiceNumber:{invoiceResult.Header._InvoiceNumber}"); }
private async void B_Orders_Click(object sender, RoutedEventArgs e) { // Getting CrudAPI var crudAPI = UnicontaAPIManager.GetCrudAPI(); crudAPI.RunInTransaction = false; // Parsing CSV var orders = CSVUtils.ParseOrders(@"C:\src\Uniconta\Technical-Training-Cases-master\TrainingData\CompanyData\Finace-Orders.csv"); // Creating SQLCache's SQLCache customerCache = crudAPI.CompanyEntity.GetCache(typeof(DebtorClient)); if (customerCache == null) { customerCache = await crudAPI.CompanyEntity.LoadCache(typeof(DebtorClient), crudAPI); } SQLCache inventoryCache = crudAPI.CompanyEntity.GetCache(typeof(InvItemClient)); if (inventoryCache == null) { inventoryCache = await crudAPI.CompanyEntity.LoadCache(typeof(InvItemClient), crudAPI); } // Creating Insert List var newDebtorOrderClients = new List <DebtorOrderClient>(); foreach (var order in orders) { // Parsing Account Number var accountNumber = (int.Parse(order.AccountNumber) + 20000).ToString(); // Finding customer in cache var customer = customerCache.Get(accountNumber) as DebtorClient; var newDebtorOrderClient = new DebtorOrderClient { _Created = order.CreatedDate }; newDebtorOrderClient.SetMaster(customer); newDebtorOrderClients.Add(newDebtorOrderClient); } ; // Calling insert API var errorCode = await crudAPI.Insert(newDebtorOrderClients); if (errorCode != ErrorCodes.Succes) { MessageBox.Show($"ERROR: Failed to import orders {errorCode.ToString()}"); } // Creating order lines var newDebtorOrderLineClients = new List <DebtorOrderLineClient>(); var inventoryList = inventoryCache.GetRecords as InvItemClient[]; var index = 0; foreach (var debtorOrder in newDebtorOrderClients) { var orderItems = orders[index].Items; foreach (var item in orderItems) { var inventoryItem = inventoryList.FirstOrDefault(i => i.Name == item.ItemName); var orderLine = new DebtorOrderLineClient { _Item = inventoryItem.Item, _Qty = 1, _Price = inventoryItem.SalesPrice1 }; orderLine.SetMaster(debtorOrder); newDebtorOrderLineClients.Add(orderLine); } ; index++; } ; // Calling insert API var errorCode2 = await crudAPI.Insert(newDebtorOrderLineClients); if (errorCode2 != ErrorCodes.Succes) { MessageBox.Show($"ERROR: Failed to import order lines {errorCode2.ToString()}"); } else { MessageBox.Show("Import Completed"); } }