Gelöschte Artikelnummer als EAN

Mehr
8 Jahre 10 Monate her - 8 Jahre 10 Monate her #686 von arnd
Gelöschte Artikelnummer als EAN wurde erstellt von arnd
Hallo!

Ich fände es ganz praktisch, wenn beim "Löschen" bzw. Verschieben eines Artikels mit vorhandenen Bewegungen, die gelöschte Artikelnummer im Zielartikel als EAN übernommen werden könnte.
Eventuell auch nur, wenn der gelöschte Artikel noch einen Lagerbestand hat.
So könnten Artikel auch wenn sie verschoben wurden, weiter kassiert werden und man müsste keine neuen Etiketten drucken.
Alternativ wäre auch eine Abfrage denkbar, ob für den betroffenen Artikel Etiketten, gemäß Lagerbestand des gelöschten Artikels, mit der neuen Artikelnummer gedruckt werden sollen.

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 10 Monate her - 7 Jahre 10 Monate her #101 von arnd
arnd antwortete auf Gelöschte Artikelnummer als EAN
Hallo !

für das Thema habe ich mir eine kleine Lösung zusamengestellt. Ist wahrscheinlich nicht die Eleganteste, aber bei uns funktioniert sie. Vielleicht kann es ja sonst noch jemand gebrauchen... natürlich auf eigenes Risiko

Viele Grüße
arnd.

USE [****300] 
GO
/****** Temporäre Tabelle für alte und neue Artikelnummer ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[USER_TempArtNrEAN](
	[ArtikelNrAlt] [varchar](20) NOT NULL,
	[ArtikelNrNeu] [varchar](20) NOT NULL,
	[Einheit] [smallint] NOT NULL,
	[Farbe] [smallint] NOT NULL,
	[Grösse] [varchar](4) NOT NULL,
	[Typ] [varchar](1) NULL,
	[DruckEAN] [smallint] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

/****** Trigger für Artikellagerkarte. Kopiert  alte und neue Artikelnummer in die USER_TempArtNrEAN******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
CREATE Trigger [dbo].[USER_Temp_Artnr_EAN] ON [dbo].[ArtikelLagerkarte] FOR UPDATE AS 
SET NOCOUNT ON

IF (UPDATE([Modul]) AND (SELECT COUNT(*) FROM inserted WHERE [Modul] IS NOT NULL)>0)
  BEGIN
    IF (SELECT COUNT(*) FROM inserted Where (left([modul],1)='(' and substring([modul],(Len(inserted.ArtikelNr)+2),2)='):'))>'0'
      BEGIN
      delete from USER_TempArtnrEAN
		insert into dbo.USER_TempArtnrEAN (ArtikelNrAlt, ArtikelNrNeu, Einheit, Farbe, Grösse, Typ, DruckEAN)
		select distinct d.ArtikelNr, i.ArtikelNr , h.Einheit ,h.Farbe, h.Grösse,NULL as Typ,'0' as DruckEAN
		from deleted d inner join handelsartikel h
		on d.ArtikelNr =h.ArtikelNr  
inner join ArtikelFilialBestand afb on afb.Artikelnr=d.Artikelnr
		cross join inserted i
		--where afb.filialnummer=0 and afb.bestand>0 /****** Auskommentiern, wenn nur bei Artikeln mit Bestand ******/
		END
	END
GO

/****** Trigger fügt alte ArtNr als EAN ein, wenn Artikel gelöscht wird ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE Trigger [dbo].[USER_TempArtnrEAN_Delete] ON [dbo].[Artikel] FOR DELETE AS 
    IF (SELECT COUNT(*) FROM USER_tempArtnrEAN)=1
    	begin
	Insert into ean (ArtikelNr, Einheit, Farbe, Grösse, EAN, Typ, DruckEAN)
	Select ArtikelNrNeu, Einheit,Farbe,Grösse,ArtikelNrAlt,Typ,DruckEAN
		From USER_tempArtnrEAN t
		inner join deleted d on t.ArtikelNrAlt =d.ArtikelNr 
end
GO

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 9 Monate her - 7 Jahre 9 Monate her #103 von jerhardt
jerhardt antwortete auf Gelöschte Artikelnummer als EAN
Hallo Arnd,

vielen Dank für das Bereitstellen dieser Lösung! "Eingebaut" ist ja nur die Variante, die EANs des zu verschiebenden Artikels mit auf den Zielartikel zu kopieren, die Lösung hier ergänzt das sehr gut für den anderen Fall.

Ich habe den Beitrag - da ja eine Lösung vorhanden ist - in das Forum Tipps&Tricks verschoben. Wir denken aber trotzdem darüber nach, ob wir das als integrierte Funktionalität mit aufnehmen.

Nochmals "Danke" und viele Grüße

erh

Bitte Anmelden oder Registrieren um der Konversation beizutreten.