using System.Collections.Generic; using Centron.BusinessLogic; using Centron.BusinessLogic.Sales.Receipts; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Interfaces; using Centron.Tests.EndToEnd.Infrastructure; using CentronSoftware.Centron.WebServices.Entities.Sales.CustomerAssets.TimerBilling; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.TicketTests.Ticket130840; public class Ticket130840Test : EndToEndTest { public Ticket130840Test(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } private const int HelpdeskTimerI3D = 10520; public override void Execute() { // In this ticket, there was an issue when billing timers that: // - have a special article (Anfahrts- oder Remoteartikel) // - that don't have a contract // - you wanna group the special articles together this.PrepareDatabase(); using var session = new BLSession(); var timerBillingSettingsDto = new TimerBillingSettingsDTO { ReceiptKind = CentronObjectKindNumeric.DeliveryListClass, GroupEqualSpecialArticles = true //Important }; var result = session.GetBL().CreateNewReceiptForHelpdekTimers(new List { 10520 }, timerBillingSettingsDto, this.GetLoggedInUser().User); this.Verifier.Verify("Result", result); } private void PrepareDatabase() { // The timer 10520 already has a special-article, but also has a contract // Remove the contract to force the issue from this ticket this.Sql($"UPDATE dbo.hlpdsk_timer SET ContractI3D = NULL WHERE I3D = {HelpdeskTimerI3D}"); } }