Skocz do zawartości

[Sfera] Przeliczenie wartości wariantu

Polecane posty

Dodaje za pomocą Sfery, dokument Oferty. Na końcu robię of.Przelicz(); i w efekcie mam podsumowanie wartości całego dokumentu. Nie podsumowują się jednak warianty. Próbowałem się do nich dobić i znaleźć jakąś funkcję podsumowującą, ale nie mogę się do niej dostać wychodząc z of.Dane.Warianty. Wiem, z dokumentacji, że jest cały zakres funkcji, w InsERT.Moria.Dokumenty.Logistyka, ale nie wiem jak tam się dostać z poziomu tworzonej oferty.

Link to postu

W sprawie przeliczania wariantu: proszę zrzutować obiekt oferty na interfejs IWariantyDokumentu. Tam znajduje się interesująca Pana metoda:

((IWariantyDokumentu)of).PrzeliczWarianty();

Brak widoczności tej metody (a także kilku innych, służących do operowania wariantami) bez potrzeby rzutowania to nasze przeoczenie.
 
Natomiast opiekun rzeczywiście nie jest ustawiany automatycznie podczas wypełniania przez sferę. Niestety nie zdążymy poprawić do najbliższej wersji.
Odpowiedni kontakt można pobrać na przykład tak:
Kontakt PobierzKontakt(Uzytkownik opiekun)
{
  if (opiekun.Osoba != null)
  {
  	return opiekun.Osoba.Podmiot.Kontakty.FirstOrDefault(x => x.DomyslnyDlaOferty);
  }
  return null;
}
i potem dodać :
of.Dane.Kontakty.Add(kontakt);

Link to postu

No nie ładnie tak ukrywać metody przed klientami :) Ważne, że działa i będzie ulepszone w kolejnej wersji ;)

Kontakty też udało się dodać na podstawie wskazanej metody podejście, chociaż zrobiłem to trochę prościej, dla mnie, w jednej linijce kodu:

foreach(var kontakt in of.Dane.Opiekun.Osoba.Podmiot.Kontakty.Where(x => x.DomyslnyDlaOferty)) of.Dane.Kontakty.Add(kontakt);

 

Link to postu

Tworząc konto w moim systemie, konieczne jest wskazanie konta w Insert NEXO, które ma Sygnaturę i jest Osobą, i to jego dane są potem Sferycznie wysyłane, więc tam mam umieszczoną tą walidację, ale oczywiście to ważna uwaga dla innych osób, które będą wdrażać ten kod!

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