Zmodyfikowałem skrypt tak by w subiekcie można było sortować faktury RR wg numerów oryginalnych. Po prostu dodałem do numeru zera wiodące, dopisywane z lewej strony numeru tak by numer zawsze miał stałą liczbę znaków. W tym przypadku 3.
W pierwotnej wersji sortowanie daje w efekcie:
1/RR/2012
11/RR/2012
12/RR/2012
...
19/RR/2012
100/RR/2012
100/RR/2012
Może komuś moja poprawka się przyda.
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
ON dok__Dokument
AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int
SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')
UPDATE dok__Dokument
SET dok_NrPelnyOryg = (select replicate( 0,3-len(@nr_biezacy)) + @nr_biezacy) + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
WHERE dok_Id = @ident
SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1
UPDATE tw__Towar
SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
WHERE tw_Symbol = 'NUMER_RR'
END;
GO
Ewentualnie jak ktoś nie lubi zer z przodu, to wersja z dodanymi z przodu spacjami.
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
ON dok__Dokument
AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int
SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')
UPDATE dok__Dokument
SET dok_NrPelnyOryg = (select replicate( ' ',3-len(@nr_biezacy)) + @nr_biezacy) + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
WHERE dok_Id = @ident
SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1
UPDATE tw__Towar
SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
WHERE tw_Symbol = 'NUMER_RR'
END;
GO
Fajnie byłoby, gdyby ktoś podpowiedział jak wymusić stałą stawkę VAT 7% dla faktur VAT RR