Задача такая.
Есть остаток на складе, смотрим последний приход на склад, переваливаемся в накладную и смотрим с какого склада был расход (т.е. с какого склада пришел материал). Теперь по складу с которого был расход смотрим когда на него был последний приход. И так далее пока не найдем тот склад на который данный материал оприходовали после закупки.
Т.е. материал купили, оприходовали на склад, потом перевели на другой склад ,с этого другого перевили на третий и так далее.Нужно поймать дату, когда же материал всетаки был куплен.
Не пойму как сделать рекурсию (опыта работы с рекурсией нет).
Делаю так но это только до первого приходного ордера
Код: Выделить всё
If getLast SpOrder where ((
0==SpOrder.sp and
Katmc.nrec==SpOrder.cmc and
KatPodr.nrec==SpOrder.ccpodr and
date(01,01,2005)<<SpOrder.dord and
0 == SpOrder.VIDORDER (noindex)
))=TsOk
Then {
setorder(tipo_dat_ord);
do
Begin
If Getfirst Katsopt = tsok then
Begin
If KatSopr.Vidsopr = 101 Then // закупка
Begin
d_pr_kl:=Sporder.Dord;
break;
End;
End;
End;
While GetPrev SpOrder where ((
0==SpOrder.sp and
Katmc.nrec==SpOrder.cmc and
Katpodr.nrec==SpOrder.ccpodr and
date(01,01,2005)<<SpOrder.dord and
0 == SpOrder.VIDORDER (noindex)
))=TsOk
}