Prozeduren Previous topic Chapter index Next topic

TI_UPDATE_STATUS_WITH_RETURN

 

Eingabeparameter

Parameter

Typ

Beschreibung

ACTTIID

INTEGER

Primary Key Wert von der TITEL Tabelle

ACTTISTATUS

INTEGER

Den aktuellen Status des Titels
0 = Unberührt
1 = Eingesehen
2 = In Bearbeitung
>=3 = (n - 2) mal geplant

ACTTITYP

VARCHAR(2)

Der Titel Typ (wird nicht mehr gebraucht).

 

Ausgabeparameter

Parameter

Typ

Beschreibung

UPDATED

INTEGER

Gibt an ob der Status geändert werden musste.

 

Beschreibung

Aktualisiert den Status der Titel.
Zählt die UnterTitel, SendungItems, Sendeelemente und Exports Verknüpfungen zum Titel zusammen.

 

Definition

CREATE PROCEDURE TI_UPDATE_STATUS_WITH_RETURN(
    ACTTIID INTEGER,
    ACTTISTATUS INTEGER,
    ACTTITYP VARCHAR(2))
RETURNS (
    UPDATED INTEGER)
AS
  DECLARE VARIABLE AnzGeplant     INTEGER;
  DECLARE VARIABLE AnzGeplantTI   INTEGER;
  DECLARE VARIABLE AnzGeplantSE   INTEGER;
  DECLARE VARIABLE AnzGeplantNE   INTEGER;
  DECLARE VARIABLE AnzExGeplant   INTEGER;
BEGIN
  Updated = 0;
  /* Referenzierte Titel zaehlen */
  SELECT COUNT(*) FROM UNTERTITEL
  WHERE (UTTIIDUNTER = :ActTiId)
  INTO :AnzGeplantTI;

  /* In Newssendungen eingeplante zaehlen */
  SELECT COUNT(*) FROM sendungitems
  WHERE (smtiid = :ActTiId)
  INTO :AnzGeplantNE;

  /* Eingeplante Sendeelemente zaehlen */
  SELECT COUNT(*) FROM SENDEELEMENTE
  WHERE (SETIID = :ActTiId) AND (SESTATUS <> 5)
  INTO :AnzGeplantSE;

  AnzGeplant = AnzGeplantTI + AnzGeplantNE + AnzGeplantSE;

  SELECT SUM(EXUSAGES) FROM EXPORTS WHERE EXTIID = :ActTiId INTO :AnzExGeplant;
  IF (AnzExGeplant IS NOT NULL) THEN
  BEGIN
    AnzGeplant = AnzGeplant + AnzExGeplant;
  END

  /* Bei bedarf den Status neu schreiben */
  IF (AnzGeplant > 0) THEN BEGIN
    AnzGeplant = AnzGeplant + 2;
    /* DABDB-398 */
    IF (AnzGeplant > 32767) THEN BEGIN
      AnzGeplant = 32767;
    END
    IF (AnzGeplant <> ActTiStatus) THEN BEGIN
      UPDATE TITEL SET TISTATUS = :AnzGeplant
      WHERE (TIID = :ActTiId);
      Updated = 1;
    END
  END
  ELSE BEGIN
    IF ((ActTiStatus > 2) or (ActTiStatus = -1)) THEN BEGIN
      UPDATE TITEL SET TISTATUS = 1
      WHERE (TIID = :ActTiId);
      Updated = 1;
    END
  END
END

 

     Previous topic Chapter index Next topic