public void Test_ContractAccrual_CRUD() { #region Arrange var tmpCustomer = new CustomerConnector().Create(new Customer() { Name = "TmpCustomer", CountryCode = "SE", City = "Testopolis" }); var tmpArticle = new ArticleConnector().Create(new Article() { Description = "TmpArticle", Type = ArticleType.Stock, PurchasePrice = 100 }); var tmpContract = new ContractConnector().Create(new Contract() { CustomerNumber = tmpCustomer.CustomerNumber, ContractDate = new DateTime(2020, 1, 1), ContractLength = 3, InvoiceInterval = 3, Comments = "TestContract", Continuous = true, Currency = "SEK", VATIncluded = false, Language = Language.English, InvoiceRows = new List <ContractInvoiceRow>() { new ContractInvoiceRow() { ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 6, Price = 1000, VAT = 0 } }, PeriodStart = new DateTime(2020, 01, 1), PeriodEnd = new DateTime(2020, 03, 20) }); #endregion Arrange IContractAccrualConnector connector = new ContractAccrualConnector(); #region CREATE var newContractAccrual = new ContractAccrual() { DocumentNumber = tmpContract.DocumentNumber, Description = "TestContractAccrual", Total = 6000, AccrualAccount = 2990, CostAccount = 3990, VATIncluded = false, AccrualRows = new List <ContractAccrualRow>() { new ContractAccrualRow() { Account = 2990, Credit = 0, Debit = 2000 }, new ContractAccrualRow() { Account = 3990, Credit = 2000, Debit = 0 }, } }; var createdContractAccrual = connector.Create(newContractAccrual); MyAssert.HasNoError(connector); Assert.AreEqual("TestContractAccrual", createdContractAccrual.Description); #endregion CREATE #region UPDATE createdContractAccrual.Description = "UpdatedTestContractAccrual"; var updatedContractAccrual = connector.Update(createdContractAccrual); MyAssert.HasNoError(connector); Assert.AreEqual("UpdatedTestContractAccrual", updatedContractAccrual.Description); #endregion UPDATE #region READ / GET var retrievedContractAccrual = connector.Get(createdContractAccrual.DocumentNumber); MyAssert.HasNoError(connector); Assert.AreEqual("UpdatedTestContractAccrual", retrievedContractAccrual.Description); #endregion READ / GET #region DELETE connector.Delete(createdContractAccrual.DocumentNumber); MyAssert.HasNoError(connector); retrievedContractAccrual = connector.Get(createdContractAccrual.DocumentNumber); Assert.AreEqual(null, retrievedContractAccrual, "Entity still exists after Delete!"); #endregion DELETE #region Delete arranged resources new ArticleConnector().Delete(tmpArticle.ArticleNumber); new CustomerConnector().Delete(tmpCustomer.CustomerNumber); #endregion Delete arranged resources }
/// <summary> /// Create a new contract accrual /// </summary> /// <param name="contractAccrual">The contract accrual to create</param> /// <returns>The created contract accrual</returns> public ContractAccrual Create(ContractAccrual contractAccrual) { return(BaseCreate(contractAccrual)); }
public void Test_ContractAccrual_Find() { #region Arrange var tmpCustomer = new CustomerConnector().Create(new Customer() { Name = "TmpCustomer", CountryCode = "SE", City = "Testopolis" }); var tmpArticle = new ArticleConnector().Create(new Article() { Description = "TmpArticle", Type = ArticleType.Stock, PurchasePrice = 100 }); var tmpContract = new ContractConnector().Create(new Contract() { CustomerNumber = tmpCustomer.CustomerNumber, ContractDate = new DateTime(2020, 1, 1), ContractLength = 3, InvoiceInterval = 3, Comments = "TestContract", Continuous = true, Currency = "SEK", VATIncluded = false, Language = Language.English, InvoiceRows = new List <ContractInvoiceRow>() { new ContractInvoiceRow() { ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 6, Price = 1000, VAT = 0 } }, PeriodStart = new DateTime(2020, 01, 1), PeriodEnd = new DateTime(2020, 03, 20) }); #endregion Arrange IContractAccrualConnector connector = new ContractAccrualConnector(); var marks = TestUtils.RandomString(); var newContractAccrual = new ContractAccrual() { Description = marks, Total = 6000, AccrualAccount = 2990, CostAccount = 3990, VATIncluded = false, AccrualRows = new List <ContractAccrualRow>() { new ContractAccrualRow() { Account = 2990, Credit = 0, Debit = 2000 }, new ContractAccrualRow() { Account = 3990, Credit = 2000, Debit = 0 }, } }; for (var i = 0; i < 5; i++) { newContractAccrual.DocumentNumber = tmpContract.DocumentNumber; connector.Create(newContractAccrual); MyAssert.HasNoError(connector); var contractConnector = new ContractConnector(); tmpContract.DocumentNumber = null; tmpContract = contractConnector.Create(tmpContract); MyAssert.HasNoError(contractConnector); } var contractAccruals = connector.Find(); Assert.AreEqual(5, contractAccruals.Entities.Count(x => x.Description.StartsWith(marks))); foreach (var entry in contractAccruals.Entities.Where(x => x.Description.StartsWith(marks))) { connector.Delete(entry.DocumentNumber); MyAssert.HasNoError(connector); } #region Delete arranged resources new ArticleConnector().Delete(tmpArticle.ArticleNumber); new CustomerConnector().Delete(tmpCustomer.CustomerNumber); #endregion Delete arranged resources }
public async Task <ContractAccrual> UpdateAsync(ContractAccrual contractAccrual) { return(await BaseUpdate(contractAccrual, contractAccrual.DocumentNumber.ToString()).ConfigureAwait(false)); }
/// <summary> /// Updates an contract accrual /// </summary> /// <param name="contractAccrual">The contract accrual to update</param> /// <returns>The updated contract accrual</returns> public ContractAccrual Update(ContractAccrual contractAccrual) { return(BaseUpdate(contractAccrual, contractAccrual.DocumentNumber)); }
public async Task <ContractAccrual> CreateAsync(ContractAccrual contractAccrual) { return(await BaseCreate(contractAccrual).ConfigureAwait(false)); }
/// <summary> /// Creates a new contractAccrual /// </summary> /// <param name="contractAccrual">The contractAccrual to create</param> /// <returns>The created contractAccrual</returns> public ContractAccrual Create(ContractAccrual contractAccrual) { return(CreateAsync(contractAccrual).Result); }
/// <summary> /// Updates a contractAccrual /// </summary> /// <param name="contractAccrual">The contractAccrual to update</param> /// <returns>The updated contractAccrual</returns> public ContractAccrual Update(ContractAccrual contractAccrual) { return(UpdateAsync(contractAccrual).Result); }
public async Task Test_ContractAccrual_CRUD() { #region Arrange var tmpCustomer = await FortnoxClient.CustomerConnector.CreateAsync(new Customer() { Name = "TmpCustomer", CountryCode = "SE", City = "Testopolis" }); var tmpArticle = await FortnoxClient.ArticleConnector.CreateAsync(new Article() { Description = "TmpArticle", Type = ArticleType.Stock, PurchasePrice = 100 }); var tmpContract = await FortnoxClient.ContractConnector.CreateAsync(new Contract() { CustomerNumber = tmpCustomer.CustomerNumber, ContractDate = new DateTime(2020, 1, 1), ContractLength = 3, InvoiceInterval = 3, Comments = "TestContract", Continuous = true, Currency = "SEK", VATIncluded = false, Language = Language.English, InvoiceRows = new List <ContractInvoiceRow>() { new ContractInvoiceRow() { ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 6, Price = 1000, VAT = 0 } }, PeriodStart = new DateTime(2020, 01, 1), PeriodEnd = new DateTime(2020, 03, 20) }); #endregion Arrange var connector = FortnoxClient.ContractAccrualConnector; #region CREATE var newContractAccrual = new ContractAccrual() { DocumentNumber = tmpContract.DocumentNumber, Description = "TestContractAccrual", Total = 6000, AccrualAccount = 2990, CostAccount = 3990, VATIncluded = false, AccrualRows = new List <ContractAccrualRow>() { new ContractAccrualRow() { Account = 2990, Credit = 0, Debit = 2000 }, new ContractAccrualRow() { Account = 3990, Credit = 2000, Debit = 0 }, } }; var createdContractAccrual = await connector.CreateAsync(newContractAccrual); Assert.AreEqual("TestContractAccrual", createdContractAccrual.Description); #endregion CREATE #region UPDATE createdContractAccrual.Description = "UpdatedTestContractAccrual"; var updatedContractAccrual = await connector.UpdateAsync(createdContractAccrual); Assert.AreEqual("UpdatedTestContractAccrual", updatedContractAccrual.Description); #endregion UPDATE #region READ / GET var retrievedContractAccrual = await connector.GetAsync(createdContractAccrual.DocumentNumber); Assert.AreEqual("UpdatedTestContractAccrual", retrievedContractAccrual.Description); #endregion READ / GET #region DELETE await connector.DeleteAsync(createdContractAccrual.DocumentNumber); await Assert.ThrowsExceptionAsync <FortnoxApiException>( async() => await connector.GetAsync(createdContractAccrual.DocumentNumber), "Entity still exists after Delete!"); #endregion DELETE #region Delete arranged resources await FortnoxClient.ContractConnector.FinishAsync(tmpContract.DocumentNumber); //FortnoxClient.ArticleConnector.Delete(tmpArticle.ArticleNumber); //Can't delete since it is used in contract //FortnoxClient.CustomerConnector.Delete(tmpCustomer.CustomerNumber); //Can't delete since it is used in contract #endregion Delete arranged resources }
public async Task <ContractAccrual> CreateAsync(ContractAccrual contractAccrual) { return(await BaseCreate(contractAccrual)); }