Třídová akce

Popis:
Hromadná změna příznaku Auditováno pomocí jednoho SQL UPDATE. ASel_ID - ID seldatu, kde jsou připravena IDčka měněných záznamů tabulky GeneralLedger AAudited - nová hodnota příznaku Auditace
Kód:
28
Tělo:
#IB
EXECUTE BLOCK
AS
DECLARE mObj_ID CHAR(10);
BEGIN
  FOR 
    SELECT Obj_ID FROM SELDAT WHERE Sel_ID = {ASEL_ID} INTO mObj_ID 
  DO 
  BEGIN
#ALL
UPDATE GeneralLedger SET Audited = {AAudited}
WHERE 
#ORA
  GeneralLedger.ID IN (SELECT SELDAT.OBJ_ID FROM SELDAT WHERE SELDAT.SEL_ID = {ASEL_ID}) AND
#MS
  GeneralLedger.ID IN (SELECT SELDAT.OBJ_ID FROM SELDAT WHERE SELDAT.SEL_ID = {ASEL_ID}) AND
#IB
  GeneralLedger.ID = :mObj_ID AND 
#ALL
  (
    {AAudited} = 'N' OR (
      -- neskladové doklady
      NOT EXISTS(SELECT 1 FROM Relations WHERE RIGHTSIDE_ID = GeneralLedger.ID AND REL_DEF IN ({REL_DEF})) OR
      -- skladové jen uzavřené uzávěrkou
      EXISTS(
        SELECT 1 FROM Relations 
        JOIN SYS$StoreDocuments3 ON SYS$StoreDocuments3.StoreDocument_ID = Relations.LEFTSIDE_ID
        WHERE 
          Relations.RIGHTSIDE_ID = GeneralLedger.ID AND 
          Relations.REL_DEF IN ({REL_DEF}) AND
          SYS$StoreDocuments3.Closed = 'A'
      )
    )  
  ) AND
  Audited <> {AAudited} AND
  IsRequest = 'N'
#IB
  ;
  END
END

Generated by ABRA Software a.s. 27.10.2021 16:34:09