Geschäftsvorfälle kopieren

Mehr
10 Jahre 9 Monate her - 10 Jahre 9 Monate her #1154 von arnd
Geschäftsvorfälle kopieren wurde erstellt von arnd
Hallo!

Bei uns kommt es öfters vor, dass identische Vorfälle mehrfach erfasst werden müssen.
Mit dieser UserQuery, angehängt an Wareneingang und GeschäftsVorfall, kann man vorhandene Vorfälle einfach kopieren.
Das funktioniert auch, falls man einen Vorfall mal versehentlich storniert hat und ihn doch wieder braucht.
Bei Ausführung wird nach einer neuen FremdVorfallNr gefragt und man muss bei der Abfrage 'Sicher' Ja eintippen.
USE [*300]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Arnd
-- Create date: 20120818
-- Description:	UserQuery zum Kopieren von Vorfällen
--				Kann An Wareneingang und GeschäftsVorfall angehängt werden
-- =============================================
CREATE PROCEDURE [dbo].[UserQueryVorfall_kopieren] ( @VorfallKürzel varchar(10), @VorfallNr varchar(8), @Neue_FremdVorfall_Nr varchar(15), @Sicher varchar(5)) AS
DECLARE @VNrNeu varchar(8)

IF @Sicher <> 'Ja'
	BEGIN
	RAISERROR 44447 @Sicher 
	RETURN
	END

IF LEN(@VorfallNr)=0
	BEGIN
	RAISERROR 44447 'Kein Vorfall ausgewählt'
	RETURN
	END

IF @Sicher='Ja'
AND LEN(@VorfallKürzel)> 0
AND @VorfallNr > 0

BEGIN

SET @VNrNeu = (
		SELECT     MAX(VorfallNr) + 1 AS nVNr
		FROM         GeschäftsVorfall
		GROUP BY VorfallKürzel
		HAVING      (VorfallKürzel = @VorfallKürzel)
		)
	
			BEGIN
			INSERT  [dbo].[GeschäftsVorfall]
					   ([VorfallKürzel]
					   ,[VorfallNr]
					   ,[Arbeitsplatz]
					   ,[Lieferbedingung]
					   ,[Zahlungsbedingung]
					   ,[KorrNr]
					   ,[VorfallDatum]
					   ,[VKPNr]
					   ,[MwStArt]
					   ,[WartungsvertragNr]
					   ,[Skonto1Prozent]
					   ,[Skonto1Betrag]
					   ,[Skonto2Prozent]
					   ,[Skonto2Betrag]
					   ,[ZahlungsZielNetto]
					   ,[ZahlungsZielSkonto1]
					   ,[ZahlungsZielSkonto2]
					   ,[Status]
					   ,[VersandkostenNetto]
					   ,[AnzahlungBetrag]
					   ,[AnzahlAusdrucke]
					   ,[Zusatztext1]
					   ,[Zusatztext2]
					   ,[Rabatt]
					   ,[Sprache]
					   ,[Währung]
					   ,[Filialnummer]
					   ,[RückstandJN]
					   ,[TeillieferungJN]
					   ,[Wechselkurs]
					   ,[Status1]
					   ,[Status2]
					   ,[GesamtNetto]
					   ,[GesamtBrutto]
					   ,[VersandMwStSatz]
					   ,[Skontofähig]
					   ,[Gewicht]
					   ,[Anzahlung]
					   ,[BonusSumme]
					   ,[PrämienSumme]
					   ,[Abteilung]
					   ,[FremdVorfallNr]
					   ,[FreigabeKz]
					   ,[FreigabeMitarbeiter]
					   ,[Rohertrag]
					   ,[DocumentId]
					   ,[DocumentIdEingang]
					   ,[Ansprechpartner]
					   ,[MemoNr]
					   ,[Gesperrt]
					   ,[ErfasstAm]
					   ,[ErfasstUm]
					   ,[ErfasstVon]
					   ,[VorfallUhrzeit]
					   ,[VerbuchungsParameter])
			SELECT     VorfallKürzel, @VNrNeu AS VorfallNr, Arbeitsplatz, Lieferbedingung, Zahlungsbedingung, KorrNr, VorfallDatum, VKPNr, 
								MwStArt, WartungsvertragNr, Skonto1Prozent, 
								  Skonto1Betrag, Skonto2Prozent, Skonto2Betrag, ZahlungsZielNetto, ZahlungsZielSkonto1, ZahlungsZielSkonto2, 
								  'OFF' AS [Status], 
								  VersandkostenNetto, AnzahlungBetrag, AnzahlAusdrucke, Zusatztext1, Zusatztext2, Rabatt, Sprache, 
								  Währung, Filialnummer, RückstandJN, TeillieferungJN, Wechselkurs, Status1, Status2, GesamtNetto, 
								  GesamtBrutto, VersandMwStSatz, Skontofähig, Gewicht, Anzahlung, BonusSumme, PrämienSumme, Abteilung, 
								  @Neue_FremdVorfall_Nr AS  FremdVorfallNr, 
								  FreigabeKz, FreigabeMitarbeiter, 
								  Rohertrag, DocumentId, DocumentIdEingang, Ansprechpartner, MemoNr, Gesperrt, 
								  CONVERT(varchar(8), GetDate(), 112) AS ErfasstAm, 
								  CONVERT(varchar(5), GetDate(), 108) AS ErfasstUm, 
								  ErfasstVon, 
								  VorfallUhrzeit, VerbuchungsParameter
			FROM         GeschäftsVorfall
			WHERE     (VorfallKürzel = @VorfallKürzel) AND (VorfallNr = @VorfallNr)
			END
			
				IF (select COUNT(*) from GeschäftsVorfall where VorfallKürzel = @VorfallKürzel and VorfallNr = @VNrNeu)>0
				BEGIN
					INSERT INTO [dbo].[GeschäftsvorfallPosition]
							   ([VorfallKürzel]
							   ,[VorfallNr]
							   ,[ArbeitsPlatz]
							   ,[PositionNummer]
							   ,[ArtikelNr]
							   ,[Einheit]
							   ,[Farbe]
							   ,[Groesse]
							   ,[SerienNummer]
							   ,[FilialNummer]
							   ,[MitarbeiterKürzel]
							   ,[KorrNr]
							   ,[MwStSatzNr]
							   ,[BestellDatenNr]
							   ,[GarantieMonate]
							   ,[VerkaufVermietung]
							   ,[FixKauf]
							   ,[LieferDatum]
							   ,[Text]
							   ,[Menge]
							   ,[GelieferteMenge]
							   ,[EinzelpreisNetto]
							   ,[RabattProzent]
							   ,[RabattBetrag]
							   ,[EinzelpreisBrutto]
							   ,[MwStBetrag]
							   ,[MwStProzent]
							   ,[ZeilenSummeNetto]
							   ,[ZeilenSummeBrutto]
							   ,[RabattBrutto]
							   ,[Status]
							   ,[Status1]
							   ,[Status2]
							   ,[RückstandJN]
							   ,[TeilLieferungJN]
							   ,[Gewicht]
							   ,[BonusBetrag]
							   ,[Abteilung]
							   ,[SammelText]
							   ,[PreisfindungsArt]
							   ,[NatRabattMenge]
							   ,[SerienNummern]
							   ,[Rohertrag]
							   ,[Hierarchie]
							   ,[PositionsArt]
							   ,[Bemerkung]
							   ,[SatzTyp]
							   ,[VKPreis]
							   ,[AnsprechpartnerNr]
							   ,[ReferenzMenge]
							   ,[Paketnummer]
							   ,[FremdPositionsNr]
							   ,[Lagerort]
							   ,[IntraStatID]
							   ,[EAN]
							   ,[Konto]
							   ,[Kostenstelle])			
					SELECT     VorfallKürzel, @VNrNeu AS VorfallNr, ArbeitsPlatz, PositionNummer, ArtikelNr, Einheit, Farbe, Groesse, 
										SerienNummer, FilialNummer, MitarbeiterKürzel, KorrNr, MwStSatzNr, BestellDatenNr, 
										GarantieMonate, VerkaufVermietung, FixKauf, LieferDatum, Text, Menge, GelieferteMenge, EinzelpreisNetto,
										RabattProzent, RabattBetrag, EinzelpreisBrutto, MwStBetrag, MwStProzent, ZeilenSummeNetto, 
										ZeilenSummeBrutto, RabattBrutto, Status, Status1, Status2, RückstandJN, 
										TeilLieferungJN, Gewicht, BonusBetrag, Abteilung, SammelText, PreisfindungsArt, NatRabattMenge,
										SerienNummern, Rohertrag, Hierarchie, PositionsArt, Bemerkung, 
										SatzTyp, VKPreis, AnsprechpartnerNr, ReferenzMenge, Paketnummer, FremdPositionsNr, Lagerort, IntraStatID,
										EAN, Konto, Kostenstelle
					FROM         GeschäftsvorfallPosition
					WHERE     (VorfallKürzel = @VorfallKürzel) AND (VorfallNr = @VorfallNr)			
				END			
END

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 9 Monate her - 10 Jahre 9 Monate her #427 von arnd
arnd antwortete auf Re: Geschäftsvorfälle kopieren
Passend dazu noch eine UserQuery zum Löschen des geoffneten Vorfalls, direkt im 'Geschäftsvorfall erfassen' oder 'Wareneingang'.
Natürlich mit Einschränkung, dass der Status des Vorfalls 'OFF' ist.

USE [*300]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      Arnd
-- Create date: 20120818
-- Description:   UserQuery zum Löschen von OFF Vorfällen
--            Kann An Wareneingang und GeschäftsVorfall angehängt werden
-- =============================================
CREATE PROCEDURE [dbo].[UserQueryVorfall_löschen] ( @VorfallKürzel varchar(10), @VorfallNr varchar(8), @Sicher varchar(5)) AS
DECLARE @Status varchar(3)
SET @Status = (select [Status] from GeschäftsVorfall where VorfallNr = @VorfallNr and VorfallKürzel = @VorfallKürzel)

IF @Status <> 'OFF'
   BEGIN
   RAISERROR 44447 'VerbuchungsStatus ist nicht OFF. Vorfall kann hier nicht gelöscht werden'
   RETURN
   END 

IF @Sicher <> 'Ja'
   BEGIN
   RAISERROR 44447 @Sicher
   RETURN
   END

IF LEN(@VorfallNr)=0
   BEGIN
   RAISERROR 44447 'Kein Vorfall ausgewählt'
   RETURN
   END
   
IF @Sicher='Ja'
AND LEN(@VorfallKürzel)> 0
AND @VorfallNr > 0

BEGIN
	BEGIN
		DELETE FROM [dbo].[GeschäftsvorfallPosition]
		WHERE     (VorfallKürzel = @VorfallKürzel) AND (VorfallNr = @VorfallNr)         
	END    

	BEGIN
		DELETE FROM  [dbo].[GeschäftsVorfall]
		WHERE     (VorfallKürzel = @VorfallKürzel) AND (VorfallNr = @VorfallNr)
	END
 END

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
9 Jahre 10 Monate her - 9 Jahre 10 Monate her #556 von uwa
Hinweis: unter OS.NET wird empfohlen die UQ unter Vorfall erfassen->Aktionen einzubinden. Sonst wird die UQ u.U. mehrfach ausgeführt.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.