1. Zmieniłem Ustawienia -> Dane Firmy -> Parametry -> Wykonywanie Procedur -> Dla dokumentów sprzedaży na TAK
2. Dodałem procedurę przedstawioną przez "rafal" do procedury dokumentu sprzedaży która w tym momencie wygląda następująco
Kod:
//"procsp.sc","Procedury dokumentu sprzedaży",12015,0,1.0.0,SYSTEM
//" Procedury",2400,14,62
#define TYP_KATALOG 14
#define RODZ_GLOWNY 3300
BaseBD bazaBufora
#include "Procedury - include"
int Sub OnAddNewDokument(long lId)
OnAddNewDokument = 0
EndSub
int Sub OnBeforeInsert(long lId)
OnBeforeInsert = 0
baseBD bd
baseBP bp
int errBD, errBP
int iIlosc
bd.GetRecById(lId)
bp.SetKey("super")
bp.SetKeySeg("super", bd.GetField("id"))
bp.SetKeySeg("lp", 0)
errBP = bp.GetRec( GE )
while errBP == 0
if bp.GetField("super") != bd.GetField("id") then exit
// sprawdzamy warunek dla pozycji
iIlosc = bp.GetField("ilosc")
if bp.GetField("kod") == "Towar01" && (bp.GetField("ilosc") - iIlosc) > 0 then
message "Ilośc dla towaru musi być całkowita"
OnBeforeInsert = -6000
endif
errBP = bp.GetRec( NX )
wend
EndSub
int Sub OnAfterInsert(long lId)
OnAfterInsert = SprawdzOkresNumeracji(lId, BAS_DK)
EndSub
int Sub OnKhChanged(long lId)
OnKhChanged = 0
EndSub
int Sub OnBeforeDelete(long lId)
OnBeforeDelete = 0
EndSub
int Sub OnAfterUpdate(long lId)
OnAfterUpdate = SprawdzOkresNumeracji(lId, BAS_DK)
EndSub
int Sub OnTwChanged(long lId)
OnTwChanged = 0
EndSub
Niestety jak wystawiam to nadal mogę sprzedać towar w ilości nie całkowitej.
Moja wersja to Symfonia Handel Premium 2007.a
Nie wiem gdzie mam szukać przyczyny, że procedura nie działa lub nie umiem jej zmusić do współpracy.