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.
Code:
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
Arnd.