Skocz do zawartości

[Sfera] Termin płatności

Polecane posty

Mam problem z ustawieniem terminu płatności dokumentu, wykonuje poniższy kod (skrócony):

IDokumentSprzedazy dokumentSprzedazy = _nexo.uchwyt.PodajObiektTypu<IDokumentySprzedazy>();
FormaPlatnosci formaPlatnosci = _formyPlatnosciNexo.PodajFormePlatnosci("Przelew");
  
using (var faktura = dokumentSprzedazy.Utworz(konfFS))
{
	formaPlatnosci.TerminPlatnosci = 60;
	faktura.Platnosci.DodajPlatnoscOdroczona(formaPlatnosci, faktura.Dane.Wartosc.BruttoPoRabacie);
	faktura.Dane.PlatnosciDokumentow.First().TerminDni = 60;
  
	faktura.Zapisz()
}

Dla pewności ustawiam termin płatności w dwóch miejscach, jednak na dokumencie i tak jest 7 dni, w jaki sposób ustawić taką wartość a Sferze?

DodajPlatnoscOdroczona() posiada wiele przeładowań i występuje również termin płatności, jednak nie ma przeładowania przyjmującego zarówno formePlatnosci, wartość i termin.

Link to postu

Na początku ustawia Pan termin płatności nie dla płatności dokumentu, a dla formy płatności co i tak nie zostanie uwzględnione przy zapisie bo operuje Pan na encji pobranej z bazy, a nie na obiekcie biznesowym formy płatności (IFormaPlatnosci).

Funkcja DodajPlatnoscOdroczona zwraca kolekcję utworzonych płatności odroczonych i najlepiej to na niej wykonywać operację zmiany terminu:

IEnumerable<PlatnoscDokumentu> platnosciOdroczone = faktura.Platnosci.DodajPlatnoscOdroczona(formaPlatnosci, faktura.Dane.Wartosc.BruttoPoRabacie);
foreach (PlatnoscDokumentu platnoscOdroczona in platnosciOdroczone)
  platnoscOdroczona.TerminDni = ...;

Podejrzewam, że w Pana przypadku dokument przed dodaniem zawiera już jakieś płatności domyślne przez co termin ustawia Pan nie na tej płatności co trzeba.

  • Lubię to 1
  • Dziękuję 1
Link to postu
×
×
  • Dodaj nową pozycję...