BestelltMengenBerichtigung.p 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. DEF VAR iBestellt AS INT NO-UNDO.
  2. DEF BUFFER bBesze FOR Besze .
  3. DEF BUFFER bArtst FOR Artst .
  4. DEF BUFFER bArtLager FOR ArtLager.
  5. DISABLE TRIGGERS FOR LOAD OF Besze .
  6. DISABLE TRIGGERS FOR LOAD OF Artst .
  7. DISABLE TRIGGERS FOR LOAD OF ArtLager.
  8. FOR EACH Besze NO-LOCK
  9. WHERE Besze.Firma = '1000':
  10. FIND FIRST Besko NO-LOCK OF Besze NO-ERROR.
  11. IF NOT AVAILABLE Besko THEN
  12. DO:
  13. FIND bBesze WHERE RECID(bBesze) = RECID(Besze).
  14. DELETE bBesze.
  15. RELEASE bBesze.
  16. NEXT.
  17. END.
  18. IF Besze.Best_Sta = Besko.Best_Sta THEN NEXT.
  19. FIND bBesze WHERE RECID(bBesze) = RECID(Besze).
  20. bBesze.Best_Sta = Besko.Best_Sta.
  21. END.
  22. FOR EACH Artst NO-LOCK
  23. WHERE Artst.Firma = '1000',
  24. FIRST ArtLager NO-LOCK OF Artst:
  25. iBestellt = 0.
  26. FOR EACH Besze NO-LOCK
  27. WHERE Besze.Firma = Artst.Firma
  28. AND Besze.Artnr = Artst.Artnr
  29. AND Besze.Inhalt = Artst.Inhalt
  30. AND Besze.Jahr = Artst.Jahr
  31. AND Besze.Best_Sta < 3
  32. :
  33. iBestellt = iBestellt + Besze.MBest.
  34. END.
  35. IF iBestellt = Artst.Bestellt AND
  36. iBestellt = ArtLager.Bestellt THEN NEXT.
  37. IF iBestellt <> Artst.Bestellt THEN DO:
  38. FIND bArtst EXCLUSIVE-LOCK
  39. WHERE RECID(bArtst) = RECID(Artst) NO-WAIT NO-ERROR.
  40. IF AVAILABLE bArtst THEN DO:
  41. bArtst.Bestellt = iBestellt.
  42. RELEASE bArtst.
  43. END.
  44. END.
  45. IF iBestellt <> ArtLager.Bestellt THEN DO:
  46. FIND bArtLager EXCLUSIVE-LOCK
  47. WHERE RECID(bArtLager) = RECID(ArtLager) NO-WAIT NO-ERROR.
  48. IF AVAILABLE bArtLager THEN DO:
  49. bArtLager.Bestellt = iBestellt.
  50. RELEASE bArtLager.
  51. END.
  52. END.
  53. END.