Witam,
mam problem, który wydaje się błahy, ale nie wiem co robię źle.
Potrzebuję wystawić PAi lub FS do zamówienia ZK.
Ręczne stworzenie dokumentu np. PAi i dodanie pozycji, zapisanie wychodzi dobrze, do momentu gdy niektóre ZK zawierają dany towar, który jest zarezerwowany.
Jeżeli na stanie jest jedna sztuka towaru i jest ona zarezerwowana pod Zamówienie nr X, to dostępność jest zerowa w systemie - a towar może być tylko wpisany pod PAi lub FS które dotyczą zamówienia X.
Nie wiem jak zmusić Sferę, aby odnosiła się do zamówienia X, tworząc PAi lub FS.
Pierwotny kod:
IsZKExists := SubGT.Dokumenty.Istnieje(ADocZK.Nr);
if IsZKExists then
SuDok2 := SubGT.Dokumenty.Wczytaj(ADocZK.Nr)
else
raise Exception.Create('Nie istnieje dokument ZK o numerze: ' + ADocZK.Nr);
SuDok := SubGT.Dokumenty.Dodaj(gtaSubiektDokumentPAi);
SuDok.DoDokumentuNumerPelny := ADocZK.NrOrg;
SuDok.KontrahentId := SuDok2.KontrahentId;
SuDok.OdbiorcaId := SuDok2.OdbiorcaId;
for I := 0 to ADocZK.DocZKPos.Count - 1 do
begin
SuPoz := SuDok.Pozycje.Dodaj(OleVariant(Integer(ADocZK.DocZKPos[I].Id)));
SuPoz.IloscJm := Integer(Round(ADocZK.DocZKPos[I].Amount));
SuPoz.WartoscBruttoPoRabacie := ADocZK.DocZKPos[I].PriceGross;
end;
SuDok.Zapisz;
drugie podejście - próba 'wiązania' z ZK źródłowym
IsZKExists := SubGT.Dokumenty.Istnieje(ADocZK.Nr);
if IsZKExists then
SuDok2 := SubGT.Dokumenty.Wczytaj(ADocZK.Nr)
else
raise Exception.Create('Nie istnieje dokument ZK o numerze: ' + ADocZK.Nr);
case AType of
gtaSubiektDokumentFS: SuDok := SubGT.SuDokumentyManager.DodajFS;
gtaSubiektDokumentPAi: SuDok := SubGT.SuDokumentyManager.DodajPAi;
end;
SuDok.NumerOryginalny := ADocZK.NrOrg;
SuDok.NaPodstawie(SuDok2.Identyfikator);
SuDok.Przelicz();
SuDok.Zapisz;
ale nie wychodzi.
Proszę o wskazówki. Pozdrawiam