gelöschte Artikel AKTIV_JN

Lob (und Tadel), Anregungen und Probleme.

Moderator: SYNERPY

Antworten
pedro
Beiträge: 18
Registriert: Mo Nov 05, 2007 12:53 pm

gelöschte Artikel AKTIV_JN

Beitrag von pedro »

Hallo,
wie stell ich denn ein, dass gelöschte Artikel in der 2008-Version tatsächlich gelöscht werden. Derzeit sind sie immer noch da und haben offenbar "N" im Feld AKTIV_JN. In einigen Programmen, z.B. Lagerbuchen ohne Stückliste, werden auch diese gelöschten Artikel angezeigt, was ziemlich irritiert. Auch beim Schnellsuchfeld führt das zu problemen: Verzweig in Debugger mit sausw="22.
Gruß
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Ein Artikel, der schon einmal verwendet wurde, kann nicht gelöscht werden. Daher wird der Artikel beim Löschen automatisch auf inaktiv gestellt.
pedro
Beiträge: 18
Registriert: Mo Nov 05, 2007 12:53 pm

Beitrag von pedro »

admin hat geschrieben:Ein Artikel, der schon einmal verwendet wurde, kann nicht gelöscht werden. Daher wird der Artikel beim Löschen automatisch auf inaktiv gestellt.
o.k. wenn z.B. Relationen da sind, z.B. ein Arbeitsplan etc existiert, leuchtet das ein, aber wenn ich z.B. Artikel 4711 anlege, muss ich den doch löschen können, und zwar so, daß er nirgends mehr ersichtlich ist und so dass z.B. diese Nummer später wieder bei Bedarf angelegt werden kann.
sthiesen
Beiträge: 13
Registriert: Di Jan 08, 2008 10:06 am

Beitrag von sthiesen »

Das wird wohl nur direkt über die Datenbank gehen...
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Wir haben das jetzt so gelöst, dass der Artikel gelöscht wird, wenn beim Löschen keine Fehlermeldung kommt (weil der Artikel beispielsweise bereits in einer Rechnung vorkommt etc). Sonst wird der Artikel auf inaktiv gesetzt.

Code: Alles auswählen


SET SQL DIALECT 3;

SET NAMES ISO8859_1;


SET TERM ^ ;


CREATE OR ALTER TRIGGER V_BSA_BD0 FOR V_BSA
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
  POST_EVENT 'DUMMY_EVENT';
END
^


CREATE OR ALTER TRIGGER V_BSA_BD0 FOR V_BSA
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
BEGIN
  /* Letzter Stand 19.05.2009 09:44:02 PF */
  /* Protokollieren, dass Aktion hier durchgelaufen ist */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('V_BSA_BD0');

  EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA,:SNEIN);

  BEGIN
    DELETE FROM BSA WHERE ID = OLD.ID;
                   
    -- Artikel deaktivieren, statt sie zu löschen, wenn bereits Abhängigkeiten
    -- vorhanden sind
    WHEN ANY DO
      UPDATE BSA
      SET AKTIV_JN = :SNEIN
      WHERE ID = OLD.ID AND
            AKTIV_JN = :sJA; -- Nicht, wenn Resteverwertung oder sonstiger Status
  END
END
^


SET TERM ; ^


/* Privileges of triggers */
GRANT INSERT ON A_WASMACHTIB TO TRIGGER V_BSA_BD0;
GRANT SELECT, UPDATE, DELETE ON BSA TO TRIGGER V_BSA_BD0;
GRANT UPDATE, REFERENCES ON V_BSA TO TRIGGER V_BSA_BD0;
GRANT EXECUTE ON PROCEDURE P_BFIRMA_JANEIN TO TRIGGER V_BSA_BD0;
Antworten