Skocz do zawartości

Przykład kompensaty przez Sferę

Polecane posty

Kompensata z rozrachunkami cesyjnymi niczym się nie różni od kompensaty bez takich rozrachunków.

Uproszczony przykład dodawania kompensaty:

var kompensaty = sfera.PodajObiektTypu<IKompensaty>();
var rozrachunki = sfera.PodajObiektTypu<IRozrachunki>();
var podmioty = sfera.PodajObiektTypu<IPodmioty>();

using (var kompensata = kompensaty.Utworz())
{
	var klient = podmioty.Dane.Wszystkie().Where(p => p.NIP == "1112223900").FirstOrDefault();
	//wszystkie rozrachunki muszą być na ten sam podmiot
	//rozrachunki muszą być nierozliczone i ściągalne
	//podtyp rozrachunku musi mieć dozwolone rozliczanie i ustawiony podtyp rozrachunku kompensaty
	var naleznosc = rozrachunki.Dane.Wszystkie().FirstOrDefault(r => r.Typ == (byte)TypRozrachunku.Naleznosc && r.Podmiot.Id == klient.Id);
	var zobowiazanie = rozrachunki.Dane.Wszystkie().FirstOrDefault(r => r.Typ == (byte)TypRozrachunku.Zobowiazanie && r.Podmiot.Id == klient.Id);

	kompensata.Dane.Podmiot = klient;
	kompensata.Dane.WalutaNaleznosci = naleznosc.Waluta; //wszystkie należności muszą mieć tą samą walutę
	kompensata.Dane.WalutaZobowiazan = zobowiazanie.Waluta; //wszystkie zobowiązania muszą mieć tą samą walutę

	foreach (var pozycjeRozrachunku in naleznosc.Pozycje.Concat(zobowiazanie.Pozycje))
	{
		kompensata.DodajPozycjeKompensaty(pozycjeRozrachunku, pozycjeRozrachunku.KwotaPozostala);
	}
	kompensata.Zapisz();
}

 

Link to postu
×
×
  • Dodaj nową pozycję...