public void InsertKøbsOrder(MimeMessage message, int DocumentRef, clsParam objParam) { var From = message.From.ToString(); From = ExtractEmails(From); var Date = message.Date.DateTime; var Subject = objParam.Tekst; if (string.IsNullOrEmpty(Subject)) { Subject = message.Subject; } string wAccount = null; try { wAccount = (from c in this.m_Creditors where c.Account == objParam.Konto select c.Account).First(); } catch (Exception) { try { wAccount = (from c in this.m_Creditors where ((c.ContactEmail != null) && (c.ContactEmail.ToLower() == From.ToLower())) || ((c._InvoiceEmail != null) && (c._InvoiceEmail.ToLower() == From.ToLower())) select c.Account).First(); } catch { wAccount = "100000"; //Ukendt kreditor } } CreditorOrderClient recOrder = new CreditorOrderClient() { Account = wAccount, InvoiceDate = Date, DeliveryDate = Date, DocumentRef = DocumentRef, DeleteLines = true, DeleteOrder = true }; var taskInsertCreditorOrder = m_api.Insert(recOrder); taskInsertCreditorOrder.Wait(); var err1 = taskInsertCreditorOrder.Result; CreditorOrderLineClient recOrderLine = new CreditorOrderLineClient() { Text = Subject, Qty = 1, Price = objParam.Kredit == null ? 0 : (double)objParam.Kredit, PostingAccount = objParam.Modkonto, }; recOrderLine.SetMaster(recOrder); var taskInsertCreditorOrderLine = m_api.Insert(recOrderLine); taskInsertCreditorOrderLine.Wait(); var err2 = taskInsertCreditorOrderLine.Result; }
void UpdatePrice(CreditorOrderLineClient rec) { var priceLookup = SetPriceLookup(rec); if (priceLookup != null && priceLookup.UseCustomerPrices) { priceLookup.GetCustomerPrice(rec, false); } }
async void setLocation(InvWarehouse master, CreditorOrderLineClient rec) { if (api.CompanyEntity.Location) { if (master != null) { rec.locationSource = master.Locations ?? await master.LoadLocations(api); } else { rec.locationSource = null; rec.Location = null; } rec.NotifyPropertyChanged("LocationSource"); } }
async void setTask(ProjectClient project, CreditorOrderLineClient rec) { if (api.CompanyEntity.ProjectTask) { if (project != null) { rec.taskSource = project.Tasks ?? await project.LoadTasks(api); } else { rec.taskSource = null; rec.Task = null; } rec.NotifyPropertyChanged("TaskSource"); } }
private void DataControl_CurrentItemChanged(object sender, DevExpress.Xpf.Grid.CurrentItemChangedEventArgs e) { CreditorOrderLineClient oldselectedItem = e.OldItem as CreditorOrderLineClient; if (oldselectedItem != null) { oldselectedItem.PropertyChanged -= CreditorOrderLineGrid_PropertyChanged; } CreditorOrderLineClient selectedItem = e.NewItem as CreditorOrderLineClient; if (selectedItem != null) { selectedItem.PropertyChanged += CreditorOrderLineGrid_PropertyChanged; } }
async void MarkedOrderLine(ProductionOrderLineClient selectedItem) { busyIndicator.IsBusy = true; var orderLineMarked = new CreditorOrderLineClient(); OrderAPI orderApi = new OrderAPI(api); var res = await orderApi.GetMarkedOrderLine(selectedItem, orderLineMarked); busyIndicator.IsBusy = false; if (res == ErrorCodes.Succes) { AddDockItem(TabControls.OrderLineMarkedPage, new object[] { api, orderLineMarked }, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("PurchaseLines"), orderLineMarked._OrderNumber)); } else { UtilDisplay.ShowErrorCode(res); } }
private async void MarkOrderLineAgainstOL(CreditorOrderLineClient selectedItem = null) { OrderAPI orderApi = new OrderAPI(api); busyIndicator.IsBusy = true; var err = await orderApi.MarkedOrderLineAgainstOrderLine(debtorOrderLine, selectedItem); busyIndicator.IsBusy = false; if (err != ErrorCodes.Succes) { UtilDisplay.ShowErrorCode(err); } else { dockCtrl.CloseDockItem(); } }
private void Location_GotFocus(object sender, RoutedEventArgs e) { CreditorOrderLineClient selectedItem = dgCreditorPurchagelineGrid.SelectedItem as CreditorOrderLineClient; if (selectedItem != null && selectedItem._Warehouse != null && warehouse != null) { var selected = (InvWarehouse)warehouse.Get(selectedItem._Warehouse); setLocation(selected, selectedItem); if (prevLocation != null) { prevLocation.isValidate = false; } var editor = (CorasauGridLookupEditorClient)sender; prevLocation = editor; editor.isValidate = true; } }
void InitPage(UnicontaBaseEntity line) { InitializeComponent(); UnicontaBaseEntity[] lines; if (line is DebtorOrderLineClient) { lines = new DebtorOrderLineClient[] { (DebtorOrderLineClient)line } } ; else { lines = new CreditorOrderLineClient[] { (CreditorOrderLineClient)line } }; dgCreditorOrderLineGrid.SetSource(lines); dgCreditorOrderLineGrid.api = this.api; SetRibbonControl(localMenu, dgCreditorOrderLineGrid); dgCreditorOrderLineGrid.BusyIndicator = busyIndicator; dgCreditorOrderLineGrid.Readonly = true; }
Uniconta.API.DebtorCreditor.FindPrices SetPriceLookup(CreditorOrderLineClient rec) { var OrderNumber = rec.OrderRowId; if (OrderNumber != 0) { if (dictPriceLookup.ContainsKey(OrderNumber)) { return(dictPriceLookup[OrderNumber]); } var order = (CreditorOrder)creditorOrders.Get(OrderNumber); if (order != null) { var priceLookup = new Uniconta.API.DebtorCreditor.FindPrices(order, api); dictPriceLookup.Add(OrderNumber, priceLookup); return(priceLookup); } } return(null); }
private void localMenu_OnItemClicked(string ActionType) { switch (ActionType) { case "AddRow": var row = dgCreditorOrderLineGrid.AddRow() as DCOrderLine; row._ExchangeRate = this.exchangeRate; break; case "CopyRow": dgCreditorOrderLineGrid.CopyRow(); break; case "DeleteRow": dgCreditorOrderLineGrid.DeleteRow(); break; case "Storage": AddDockItem(TabControls.InvItemStoragePage, dgCreditorOrderLineGrid.syncEntity, true); break; case "ShowInvoice": case "GenerateInvoice": if (!string.IsNullOrEmpty(Order.Account)) { if (Utility.HasControlRights("GenerateInvoice", api.CompanyEntity)) { GenerateInvoice(Order, ActionType == "ShowInvoice" ? true: false); } else { UtilDisplay.ShowControlAccessMsg("GenerateInvoice"); } } else { string strmg = string.Format(Uniconta.ClientTools.Localization.lookup("CannotBeBlank"), Uniconta.ClientTools.Localization.lookup("Account")); UnicontaMessageBox.Show(strmg, Uniconta.ClientTools.Localization.lookup("Error"), MessageBoxButton.OK); } break; case "RefVoucher": var _refferedVouchers = new List <int>(); if (Order._DocumentRef != 0) { _refferedVouchers.Add(Order._DocumentRef); } AddDockItem(TabControls.AttachVoucherGridPage, new object[1] { _refferedVouchers }, true); break; case "ShowVoucher": busyIndicator.IsBusy = true; ViewVoucher(TabControls.VouchersPage3, Order); busyIndicator.IsBusy = false; break; case "ImportVoucher": if (Order == null) { return; } VouchersClient voucher = new VouchersClient(); voucher._Content = ContentTypes.PurchaseInvoice; voucher._Amount = Order.InvoiceAmount; voucher._CreditorAccount = Order._DCAccount; CWAddVouchers addVouvhersDialog = new CWAddVouchers(api, voucher: voucher); addVouvhersDialog.Closed += delegate { if (addVouvhersDialog.DialogResult == true) { if (addVouvhersDialog.VoucherRowIds.Length > 0) { Order.DocumentRef = addVouvhersDialog.VoucherRowIds[0]; Order.InvoiceAmount = addVouvhersDialog.vouchersClient._Amount; Order.InvoiceNumber = addVouvhersDialog.vouchersClient.Invoice; } } }; addVouvhersDialog.Show(); break; case "RemoveVoucher": RemoveVoucher(Order); break; case "InsertSubTotal": var dbOrderLineClient = new CreditorOrderLineClient { Subtotal = true }; dgCreditorOrderLineGrid.AddRow(dbOrderLineClient); break; case "ReadOIOUBL": ReadOIOUBL(); break; case "StockLines": if (dgCreditorOrderLineGrid.SelectedItem == null) { return; } var credOrderLine = dgCreditorOrderLineGrid.SelectedItem as CreditorOrderLineClient; if (!string.IsNullOrEmpty(credOrderLine._Item)) { AddDockItem(TabControls.CreditorInvoiceLine, credOrderLine, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("InvTransaction"), credOrderLine._Item)); } break; case "AttachDoc": AttachDocuments(); break; case "AddItems": if (this.items == null) { return; } object[] paramArray = new object[3] { new InvItemPurchaseCacheFilter(this.items), dgCreditorOrderLineGrid.TableTypeUser, Order }; AddDockItem(TabControls.AddMultipleInventoryItem, paramArray, true, string.Format(Uniconta.ClientTools.Localization.lookup("AddOBJ"), Uniconta.ClientTools.Localization.lookup("InventoryItems")), null, floatingLoc: Utility.GetDefaultLocation()); break; case "AddVariants": if (dgCreditorOrderLineGrid.SelectedItem == null) { return; } var orderLine = dgCreditorOrderLineGrid.SelectedItem as CreditorOrderLineClient; var itm = orderLine?.InvItem; if (itm?._StandardVariant != null) { var paramItem = new object[] { orderLine, Order }; dgCreditorOrderLineGrid.SetLoadedRow(orderLine); AddDockItem(TabControls.ItemVariantAddPage, paramItem, true, string.Format(Uniconta.ClientTools.Localization.lookup("AddOBJ"), Uniconta.ClientTools.Localization.lookup("Variants")), null, floatingLoc: Utility.GetDefaultLocation()); } break; default: gridRibbon_BaseActions(ActionType); break; } RecalculateAmount(); }
async void setVariant(CreditorOrderLineClient rec, bool SetVariant2) { if (items == null || variants1 == null || variants2 == null) { return; } //Check for Variant2 Exist if (api.CompanyEntity.NumberOfVariants < 2) { SetVariant2 = false; } var item = (InvItem)items.Get(rec._Item); if (item != null && item._StandardVariant != null) { rec.standardVariant = item._StandardVariant; var master = (InvStandardVariant)standardVariants?.Get(item._StandardVariant); if (master == null) { return; } if (master._AllowAllCombinations) { rec.Variant1Source = (IEnumerable <InvVariant1>) this.variants1?.GetKeyStrRecords; rec.Variant2Source = (IEnumerable <InvVariant2>) this.variants2?.GetKeyStrRecords; } else { var Combinations = master.Combinations ?? await master.LoadCombinations(api); if (Combinations == null) { return; } List <InvVariant1> invs1 = null; List <InvVariant2> invs2 = null; string vr1 = null; if (SetVariant2) { vr1 = rec._Variant1; invs2 = new List <InvVariant2>(); } else { invs1 = new List <InvVariant1>(); } string LastVariant = null; var var2Value = rec._Variant2; bool hasVariantValue = (var2Value == null); foreach (var cmb in Combinations) { if (SetVariant2) { if (cmb._Variant1 == vr1 && cmb._Variant2 != null) { var v2 = (InvVariant2)variants2.Get(cmb._Variant2); invs2.Add(v2); if (var2Value == v2._Variant) { hasVariantValue = true; } } } else if (LastVariant != cmb._Variant1) { LastVariant = cmb._Variant1; var v1 = (InvVariant1)variants1.Get(cmb._Variant1); invs1.Add(v1); } } if (SetVariant2) { rec.variant2Source = invs2; //if (!hasVariantValue) // rec.Variant2 = null; } else { rec.variant1Source = invs1; } } } else { rec.variant1Source = null; rec.variant2Source = null; } if (SetVariant2) { rec.NotifyPropertyChanged("Variant2Source"); } else { rec.NotifyPropertyChanged("Variant1Source"); } }
public void InsertKøbsfakturaer() { int?lastFakid = null; CreditorOrderClient recOrder = null; var rec_regnskab = Program.qryAktivRegnskab(); var qryKFak = from kfv in Program.karFakturavarer_k join kf in Program.karFakturaer_k on new { fakid = kfv.Fakid } equals new { fakid = kf.fakid } where kf.faknr != 0 && kf.faktype == 2 orderby kfv.Fakid, kfv.Line select new { Regnskabid = rec_regnskab.Rid, Sk = "K", Fakid = kfv.Fakid, Faknr = kf.faknr, Dato = kf.dato, kreditornr = kf.kreditornr, Faklinnr = kfv.Line, Varenr = kfv.Varenr, Tekst = kfv.VareTekst, Konto = kfv.Bogfkonto, Momskode = KarKontoplan.getMomskode(kfv.Bogfkonto), Antal = kfv.Antal, Enhed = kfv.Enhed, Pris = kfv.Pris, Rabat = kfv.Rabat, Moms = kfv.Moms, Nettobelob = kfv.Nettobelob, Bruttobelob = kfv.Bruttobelob, }; int antal = qryKFak.Count(); var api = UCInitializer.GetBaseAPI; //var col3 = await api.Query<CreditorOrderClient>(); //var col4 = await api.Query<CreditorOrderLineClient>(); foreach (var k in qryKFak) { if ((!(k.Fakid == 0)) && (lastFakid != k.Fakid)) { try { var crit = new List <PropValuePair>(); var pair = PropValuePair.GenereteWhereElements("OrderNumber", typeof(int), k.Fakid.ToString()); crit.Add(pair); var taskCreditorOrder = api.Query <CreditorOrderClient>(null, crit); taskCreditorOrder.Wait(); var col = taskCreditorOrder.Result; if (col.Count() == 0) { recOrder = new CreditorOrderClient() { OrderNumber = k.Fakid, Account = k.kreditornr.ToString(), InvoiceDate = k.Dato, DeliveryDate = k.Dato, }; var taskInsertCreditorOrder = api.Insert(recOrder); taskInsertCreditorOrder.Wait(); var err = taskInsertCreditorOrder.Result; } else { recOrder = col[0]; } } catch { } } CreditorOrderLineClient recOrderLine = new CreditorOrderLineClient() { Text = k.Tekst, Qty = (double)k.Antal, Price = (double)k.Pris, PostingAccount = KarNyKontoplan.NytKontonr(k.Konto) }; recOrderLine.SetMaster(recOrder); var taskInsertCreditorOrderLine = api.Insert(recOrderLine); taskInsertCreditorOrderLine.Wait(); var err1 = taskInsertCreditorOrderLine.Result; } }
public OrderLineMarkedPage(BaseAPI api, CreditorOrderLineClient line) : base(api, null) { InitPage(line); }