예제 #1
0
        public void GetCustomerInvoices()
        {
            var request     = new CustomerInvoiceListRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret);
            var invoiceList = CustomerInvoiceService.GetCustomerInvoicesAsync(request).GetAwaiter().GetResult();

            Assert.IsTrue(invoiceList.Data.ToList().Count >= 10);
        }
예제 #2
0
        public void GetSortedCustomerInvoices()
        {
            var request = new CustomerInvoiceListRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret)
            {
                SortBy = CustomerInvoiceSortableProperties.CustomerName
            };
            var invoiceList = CustomerInvoiceService.GetCustomerInvoicesAsync(request).GetAwaiter().GetResult();

            Assert.IsTrue(invoiceList.Data.ToList().First().CustomerName.StartsWith("I"));
        }
예제 #3
0
        public void SearchCustomerInvoices()
        {
            var request = new CustomerInvoiceListRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret)
            {
                SearchParameters =
                    new Dictionary <CustomerInvoiceSearchParameters, object> {
                    { CustomerInvoiceSearchParameters.CustomerName, "Interna Arbeten" }
                }
            };

            var invoiceList = CustomerInvoiceService.GetCustomerInvoicesAsync(request).GetAwaiter().GetResult();

            Assert.IsTrue(invoiceList.Data.ToList().First().CustomerName == "Interna Arbeten");
        }
예제 #4
0
        public async Task CreateInvoiceFromContractTest()
        {
            var request  = new FortnoxApiRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret);
            var response = ContractService.CreateContractAsync(request,
                                                               new Contract
            {
                CustomerNumber = "1",
                InvoiceRows    = new List <InvoiceRow>()
                {
                    new InvoiceRow {
                        ArticleNumber = "1", DeliveredQuantity = 1000, AccountNumber = 3001
                    }
                },
                ContractDate = DateTime.Now.ToString("yyyy-MM-dd"),
                PeriodStart  = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"),
                PeriodEnd    = new DateTime(DateTime.Now.Year, DateTime.Now.Month + 1, 1).AddDays(-1).ToString("yyyy-MM-dd"),
            }).GetAwaiter().GetResult();

            Assert.AreEqual("1", response.CustomerNumber);

            var contract = await ContractService.CreateInvoiceFromContractAsync(request, response);

            Assert.IsNotNull(contract);
            Assert.AreEqual(response.DocumentNumber, contract.DocumentNumber);

            var invoiceRequest = new CustomerInvoiceListRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret)
            {
                SortBy    = CustomerInvoiceSortableProperties.DocumentNumber,
                SortOrder = SortOrder.Descending
            };
            var invoiceList = await CustomerInvoiceService.GetCustomerInvoicesAsync(invoiceRequest);

            var latestInvoice = invoiceList.Data.First();

            Assert.AreEqual(latestInvoice.CustomerName, contract.CustomerName);
            Assert.AreEqual(latestInvoice.CustomerNumber, contract.CustomerNumber);
        }
        public static async Task <ListedResourceResponse <InvoiceSubset> > GetCustomerInvoicesAsync(CustomerInvoiceListRequest listRequest)
        {
            var apiRequest = new FortnoxApiClientRequest <ListedResourceResponse <InvoiceSubset> >(HttpMethod.Get, listRequest.AccessToken, listRequest.ClientSecret,
                                                                                                   ApiEndpoints.CustomerInvoices);

            apiRequest.SetFilter(listRequest.Filter?.ToString());
            apiRequest.SetSortOrder(listRequest.SortBy?.ToString(), listRequest.SortOrder.ToString());
            apiRequest.SetPageAndLimit(listRequest.Page, listRequest.Limit);

            if (listRequest.SearchParameters == null)
            {
                return(await FortnoxAPIClient.CallAsync(apiRequest));
            }

            foreach (var param in listRequest.SearchParameters)
            {
                apiRequest.AddSearchParam(param.Key.ToString().ToLower(), param.Value);
            }

            return(await FortnoxAPIClient.CallAsync(apiRequest));
        }