Files
soneta-erp-skills/Soneta.Skills.Test/CRM/Kontrahenci/WarunkiPlatnosciTest.cs
T
Marcin Wojas 01de89b7b5 kontrahent.md
2026-06-05 15:48:46 +02:00

56 lines
1.9 KiB
C#

using AwesomeAssertions;
using NUnit.Framework;
using Soneta.CRM;
using Soneta.Kasa;
namespace Soneta.Skills.Test.CRM.Kontrahenci;
/// <summary>
/// W9 — Warunki płatności i limity kredytowe.
/// Testy pokazują ustawienie sposobu zapłaty (rekord <c>FormaPlatnosci</c> z modułu Kasa),
/// terminu płatności oraz typu limitu kredytowego. Pola kalkulowane (np.
/// <c>LimitNieograniczony</c>) są tylko do odczytu i wynikają z ustawień.
/// </summary>
[TestFixture]
public class WarunkiPlatnosciTest : KontrahentTestBase
{
[Test]
[Description("Ustawienie sposobu zapłaty (Przelew) i terminu płatności jest zapisywane.")]
public void WarunkiPlatnosci_SposobIZaplatyTermin_SaZapisywane()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Firma Z Platnosciami");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
var przelew = Session.GetKasa().FormyPlatnosci[FormaPlatnosci.Przelew];
InTransaction(() =>
{
k.SposobZaplaty = przelew;
k.Termin = 14; // dni
});
SaveDispose();
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.SposobZaplaty.Should().NotBeNull();
zapisany.Termin.Should().Be(14);
}
[Test]
[Description("Typ limitu kredytowego = Nieograniczony skutkuje kalkulowanym LimitNieograniczony=true.")]
public void LimitKredytowy_Nieograniczony_UstawiaFlageKalkulowana()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Firma Bez Limitu");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
InTransaction(() => k.TypLimituKredytowego = TypLimituKredytowego.Nieograniczony);
SaveDispose();
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.TypLimituKredytowego.Should().Be(TypLimituKredytowego.Nieograniczony);
zapisany.LimitNieograniczony.Should().BeTrue(); // pole kalkulowane (read-only)
}
}