async private Task <DCPreviousAddressClient> GetPreviousAddressForInvoice(DCInvoiceClient invClient) { if (invClient == null || crudApi == null) { return(null); } DCPreviousAddressClient selectedDateInvoiceAddr = null; var propvaluePairList = new System.Collections.Generic.List <PropValuePair>() { PropValuePair.GenereteWhereElements("DateChange", invClient.Date, CompareOperator.GreaterThan) }; var previousAddresses = await crudApi.Query <DCPreviousAddressClient>(invClient, propvaluePairList); if (previousAddresses != null && previousAddresses.Length > 0) { selectedDateInvoiceAddr = previousAddresses.FirstOrDefault(); } return(selectedDateInvoiceAddr); }
async private Task <IEnumerable <DCOrderLineClient> > CreateDCOrderLinesFromInvoice(DCOrder dcOrder, DCInvoiceClient dcInvoiceClient, bool checkIfCreditNote) { var lstOrderlines = new List <DCOrderLineClient>(); var invoiceLines = await api.Query <DebtorInvoiceLines>(dcInvoiceClient); if (invoiceLines == null || invoiceLines.Length == 0) { return(null); } Array.Sort(invoiceLines, new InvLineSort()); lstOrderlines.Capacity = invoiceLines.Length; int lineNo = 0; double sign = checkIfCreditNote ? -1d : 1d; foreach (var invoiceline in invoiceLines) { DCOrderLineClient line; switch (dcOrder.__DCType()) { case 1: line = api.CompanyEntity.CreateUserType <DebtorOrderLineClient>(); break; case 3: line = api.CompanyEntity.CreateUserType <DebtorOfferLineClient>(); break; case 6: line = api.CompanyEntity.CreateUserType <ProjectInvoiceProposalLineClient>(); break; default: line = api.CompanyEntity.CreateUserType <DebtorOrderLineClient>(); break; } line.SetMaster((UnicontaBaseEntity)dcOrder); line._LineNumber = ++lineNo; line._Item = invoiceline._Item; line._DiscountPct = invoiceline._DiscountPct; line._Discount = invoiceline._Discount; line._Qty = invoiceline.InvoiceQty * sign; line._Price = invoiceline.CurrencyEnum != null ? invoiceline._PriceCur : invoiceline._Price; if (line._Price != 0) { line._Price += invoiceline._PriceVatPart; } if (line._Qty * line._Price == 0) { line._AmountEntered = ((invoiceline.CurrencyEnum != null ? invoiceline._AmountCur : invoiceline._Amount) + invoiceline._PriceVatPart) * sign; } line._Dim1 = invoiceline._Dim1; line._Dim2 = invoiceline._Dim2; line._Dim3 = invoiceline._Dim3; line._Dim4 = invoiceline._Dim4; line._Dim5 = invoiceline._Dim5; line._Employee = invoiceline._Employee; line._Note = invoiceline._Note; line._Text = invoiceline._Text; line._Unit = invoiceline._Unit; line._Variant1 = invoiceline._Variant1; line._Variant2 = invoiceline._Variant2; line._Variant3 = invoiceline._Variant3; line._Variant4 = invoiceline._Variant4; line._Variant5 = invoiceline._Variant5; line._Warehouse = invoiceline._Warehouse; line._Location = invoiceline._Location; var selectedItem = (InvItem)items?.Get(invoiceline._Item); if (selectedItem != null) { line._Item = selectedItem._Item; line._CostPriceLine = selectedItem._CostPrice; if (selectedItem._Unit != 0) { line._Unit = selectedItem._Unit; } } lstOrderlines.Add(line); } return(lstOrderlines); }