Skocz do zawartości

[Sfera] Realizacja ZK/FP w WZ, na podstawie pozycji dokumentu

Polecane posty

Mamy rozwiązanie własne, które na podstawie pozycji dokumentu ZK/ZP, tworzy dokumenty WZ. Generalnie w 99% przypadków jest wszystko ok, ale oczywiście 1% mnie denerwuje. Otóż, problem jest z FP, które otrzymały fakturę zaliczkową - jeśli jej nie ma, to system przetwarza bez problemu na podstawie WypelnijNaPodstawieZK. Przeanalizowałem Sferę no i wygląda na to, że w takim przypadku, trzeba by zapewne użyć WypelnijNaPodstawieDokumentuZaliczkowego. I teraz kilka pytań:

- oczywistym jest, że zgodnie z dokumentacją, jako ID pozycji, przekazuje się ID pozycji dokumentu zaliczkowego - czy istnieje jakaś szybka metoda, na uzyskanie tego ID, na podstawie ID pozycji FP?

- metoda ta, w porównaniu do WypelnijNaPodstawieZK ma zaledwie dwa parametry, oczywiście oba zrozumiałe, ale nie ma informacji na temat parametryGrupowania, a wiem, że te specjalnie rozbudowałem, bo były z tym problem przy przejściu bezpośrednio z ZK/FP, do WZ.

Link to postu

Ma Pan rację, należy użyć metody WypelnijNaPodstawieDokumentuZaliczkowego, która tworzy wydanie do zaliczki. Jeśli chodzi o wyszukanie pozycji zaliczkowej na podstawie pozycji pro formy/zamówienia to można to zrobić tak:

// pobieramy pozycję pro formy:
PozycjaDokumentu pozycjaProformy = proforma.Pozycje.FirstOrDefault();
// znajdujemy pozycję realizującą (pierwsza zaliczka):
PozycjaDokumentu pozycjaRealizujaca = pozycjaProformy.ZnajdzPozycjeRealizujace(TypDokumentu.DokumentSprzedazy).FirstOrDefault();
// przechodzimy do ostatniej pozycji zaliczkowej w łańcuchu zaliczek:
while (pozycjaRealizujaca.AspektZaliczkiPozycji != null && pozycjaRealizujaca.AspektZaliczkiPozycji.NastepnaZaliczka != null)
	pozycjaRealizujaca = pozycjaRealizujaca.AspektZaliczkiPozycji.NastepnaZaliczka.PozycjaDokumentu;

Nie ma możliwości użycia parametrów grupowania przy wystawianiu wydania do zaliczki ponieważ wydanie zawsze wystawia się do pojedynczego dokumentu zaliczkowego.

Edytowane przez Wojciech Szopiński
Link to postu
1 godzinę temu, Wojciech Szopiński napisał:

// znajdujemy pozycję realizującą (pierwsza zaliczka): PozycjaDokumentu pozycjaRealizujaca = pozycjaProformy.ZnajdzPozycjeRealizujace(TypDokumentu.DokumentSprzedazy).FirstOrDefault();

Czy wykrywanie faktury zaliczkowej po typie DokumentSprzedazy(64) jest 100% bezpieczne? :D Nie ukrywam, że na szybko tak właśnie to sprawdzałem, bo w normalnym przypadku musi być pierw WydanieZewnetrze(4), inaczej się chyba nie da, aby przejść z ZK z pominięciem WZ, bezpośrednio do FS?

1 godzinę temu, Wojciech Szopiński napisał:

// przechodzimy do ostatniej pozycji zaliczkowej w łańcuchu zaliczek: while (pozycjaRealizujaca.AspektZaliczkiPozycji != null && pozycjaRealizujaca.AspektZaliczkiPozycji.NastepnaZaliczka != null) pozycjaRealizujaca = pozycjaRealizujaca.AspektZaliczkiPozycji.NastepnaZaliczka.PozycjaDokumentu;

Czyli, jeśli dobrze rozumiem, jak nam jakiś gałgan z działu handlowego wystawi kilka faktur zaliczkowych cząstkowych do jednej proformy, ten zapis gwarantuje nam użycie ostatniej z nich?

Dobra, to jeszcze dopytam, bo obrobienie tego promila miesięcznych WZ, wymaga przez mnie rozwiązania jeszcze jednego problemu. Otóż u nas czasem ilość wydawana nie zgadza się dokładnie z zamówioną na FP - ot taka branża, czasem w KG/M się nie zgadza :D W takim przypadku, najpierw musimy wystawić korektę faktury zaliczkowej - prawdopodobnie ją też będę wystawiać z ja, i tak:

- fakturę korygującą do faktury zaliczkowej, pewnie wystawiam jak to wydanie do pozycji z ostatniej zaliczkowej?

- pobranie pozycji do WZ powinienem wtedy opierać od KorektaDokumentuSprzedazy(512)?

Link to postu
23 godziny temu, Radomił Ząbik napisał:

Czy wykrywanie faktury zaliczkowej po typie DokumentSprzedazy(64) jest 100% bezpieczne? :D Nie ukrywam, że na szybko tak właśnie to sprawdzałem, bo w normalnym przypadku musi być pierw WydanieZewnetrze(4), inaczej się chyba nie da, aby przejść z ZK z pominięciem WZ, bezpośrednio do FS?

Można jeszcze dodatkowo sprawdzić czy pole SprzedazZaliczkowa na dokumencie jest odpowiednio ustawione:

if (pozycjaRealizujaca.Dokument is DokumentHandlowy dokumentHandlowy && dokumentHandlowy.SprzedazZaliczkowa == (int)SprzedazZaliczkowa.Tak)
{
//...
}

 

Dnia 8.07.2019 o 08:18, Radomił Ząbik napisał:

Czyli, jeśli dobrze rozumiem, jak nam jakiś gałgan z działu handlowego wystawi kilka faktur zaliczkowych cząstkowych do jednej proformy, ten zapis gwarantuje nam użycie ostatniej z nich?

Dlaczego gałgan ? ? To chyba nie jest jakaś paranormalna sytuacja? Odpowiadając na pytanie - tak, mamy wtedy pewność, że jesteśmy na ostatniej pozycji z łańcucha zaliczek.

Dnia 8.07.2019 o 08:18, Radomił Ząbik napisał:

- fakturę korygującą do faktury zaliczkowej, pewnie wystawiam jak to wydanie do pozycji z ostatniej zaliczkowej?

Tak, korektę należy wystawić do ostatniego dokumentu z łańcucha zaliczek.

Dnia 8.07.2019 o 08:18, Radomił Ząbik napisał:

- pobranie pozycji do WZ powinienem wtedy opierać od KorektaDokumentuSprzedazy(512)?

Nie bo przecież najpierw wyszukuje Pan pozycję pierwszej zaliczki, a ta jest zawsze Dokumentem sprzedaży, a nie korektą.

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