mojaSymfonia FORUM
https://forum.mix-soft.pl/

Spr. ceny dostawy przed wyst. dok. mag.
https://forum.mix-soft.pl/viewtopic.php?f=15&t=3421
Strona 1 z 1

Autor:  zz [ 2011-10-28, 12:37 ]
Tytuł:  Spr. ceny dostawy przed wyst. dok. mag.

PRZED wystawieniem dok. mag. muszę sprawdzić cenę dostawy - czy nie zero.
Chciałem sprawdzać Selectem MZ join PW join DW , ale niestety - nie działa przed wystawieniem dokumentu.
Gdzie mogę znaleźć te powiązania?
ew. inny sposób? - próbowałem wykorzystać obiekty, ale niestety nie umiem... :(

Autor:  Khavert [ 2011-11-08, 03:54 ]
Tytuł:  Re: Spr. ceny dostawy przed wyst. dok. mag.

Witam,

Jeżeli przed wystawieniem dokumentu to musisz operować bazami BM - Dokumenty magazynowe i BZ - pozycje dokumentów z polem łączącym "super". Rozumiem iż chcesz sprawdzić tuż przed wystawieniem dokumentu, a więc w raporcie Procedury dokumentu magazynowego w OnBeforeInsert.

W procedurze zwracany jest id dokumentu w buforze lId a więc:
na samym początku całego raportu wstawiasz:

Kod:
basebz bz // bufor pozycji
basetw tw //Kartoteka towarowa
int errbz

Następnie bezpośrednio w procedurze

Kod:
bz.setkey("super")
bz.setkeyseg("super",lId)
errbz = bz.GetRec(EQ) //lub GetRec(GE) nie pamiętam dokładnie

While !errbz
tw.GetRecById(bz.GetField("idtw") //ustaw na rekordzie w bazie towarowej wg pozycji w dok

if tw.GetField("cenazak") == 0 then
//TUTAK KOD CO ZROBIĆ JEŚLI CENA ZAKUPU = 0
else
//I JEŻELI NIE JEST = 0
endif


errbz = bz.GetRec(NX) // przejdź do następnego rekordu
Wend



zz pisze:
PRZED wystawieniem dok. mag. muszę sprawdzić cenę dostawy - czy nie zero.
Chciałem sprawdzać Selectem MZ join PW join DW , ale niestety - nie działa przed wystawieniem dokumentu.
Gdzie mogę znaleźć te powiązania?
ew. inny sposób? - próbowałem wykorzystać obiekty, ale niestety nie umiem... :(
Kod:

Autor:  zz [ 2011-11-08, 08:43 ]
Tytuł: 

Gdyby to było takie proste..... :(
Ja mam sytuację, kiedy niektóre dostawy mają cenę 'realną' , a niektóre 'sztuczną'=0 dlatego muszę sprawdzać bazę dostaw.

Autor:  Khavert [ 2011-11-08, 18:22 ]
Tytuł: 

A więc jak już mamy idtw - bez szukania w bazie towarowej TW - musimy znaleźć ową dostawę w bazie dw (na początku deklaracja basedw dw).

szukamy po id w towaru

Kod:
dw.SetKey("idtw") //klucz towarowy zdefiniowany w bazie
dw.SetKeySeg("idtw",bz.GetField("idtw") /klucz którego wartość jest równa idtw
dw.getrec(LS) //ostatni zapisany rekord - tutaj nie wiem jak to będzie działało bo piszę z pamięci

message "%f", round(dw.getField("cena"),4) //okienko z ceną w zaokrągleniu do 4 miejsc po przecinku

//i standardowo  jeżeli cena == 0 to nie ma wprowadzonej, else jest ściągnij sprawdź itp.


jeżeli ściągałoby cenę z nieprawidłowej dostawy to trzeba użyć pętli w bazie DW i znleźć najpóźniejszą datę



zz pisze:
Gdyby to było takie proste..... :(
Ja mam sytuację, kiedy niektóre dostawy mają cenę 'realną' , a niektóre 'sztuczną'=0 dlatego muszę sprawdzać bazę dostaw.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/