seri atlama kontrol
This commit is contained in:
parent
0a00b17533
commit
d1a22e1fe4
@ -6,6 +6,7 @@ Logo Tiger Enterprise özel raporlar
|
||||
### [Çekler Raporu](cekler.sql "Logo Muhasebe Programı Çekler Raporu")
|
||||
### [Muhasebe Fiş Hareketlerinden Yaşlandırma Raporu](Borc%20Yaslandirma "Logo Tiger Muhasebe Programı Borç Yaşlandırma")
|
||||
### [Faturalar Satır Detaylı](Faturalar%20Sat%C4%B1r%20Detayl%C4%B1 "Satır Bazında Fatura Detay İndirilecek KDV")
|
||||
### [Veri Düzeltmeleri ve Kontrol](Veri%20Düzeltmeleri "Veri düzeltmeleri ve kontrol")
|
||||
|
||||
|
||||
## Repo Hakkında
|
||||
|
||||
12
Veri Düzeltmeleri/README.md
Normal file
12
Veri Düzeltmeleri/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Veri Düzeltme ve Kontrol
|
||||
|
||||
### [Fatura Atlama Kontrolü](fatura_atlama_kontrol.sql)
|
||||
Fatura/İrsaliye seri no atlamalarını kontrol etmek için rapor
|
||||
|
||||
### [E-Fatura Kilit Açma Düzenleme](efatura_kilitacma.sql)
|
||||
Fatura gönderildiğinde ESTATUS hanesi sıfırdan farklı değerler alıyor ve o faturada değişiklik yapılması engelleniyor haklı olarak.
|
||||
Ama fiyat ve miktar harici sütunlarda değişiklik yapılmak istenebiliyor sonrasında. Bunun için aşağıdaki işlemleri uyguluyorum
|
||||
|
||||
### [Şifre Sıfırlama](şifre%20sıfırlama.sql)
|
||||
LOGO Kullanıcısının şifresini sıfırlama
|
||||
Update sonrasında şifre "LOGO" olacaktır
|
||||
70
Veri Düzeltmeleri/fatura_atlama_kontrol.sql
Normal file
70
Veri Düzeltmeleri/fatura_atlama_kontrol.sql
Normal file
@ -0,0 +1,70 @@
|
||||
-- Değişmesi gerekenler : DATABASEADI, _001_01
|
||||
|
||||
|
||||
-- Önce generate_series fonksiyonu oluşturulur
|
||||
|
||||
-- Fonksiyon başlangıç --
|
||||
USE [DATABASEADI]
|
||||
GO
|
||||
|
||||
/****** Object: UserDefinedFunction [dbo].[generate_series] Script Date: 10/11/2019 11:39:08 ******/
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[generate_series]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
|
||||
DROP FUNCTION [dbo].[generate_series]
|
||||
GO
|
||||
|
||||
USE [DATABASEADI]
|
||||
GO
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE FUNCTION [dbo].[generate_series] ( @p_start INT, @p_end INT, @p_step INT=1 )
|
||||
RETURNS @Integers TABLE ( [IntValue] INT )
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@v_i INT,
|
||||
@v_step INT,
|
||||
@v_terminating_value INT;
|
||||
BEGIN
|
||||
SET @v_i = CASE WHEN @p_start IS NULL THEN 1 ELSE @p_start END;
|
||||
SET @v_step = CASE WHEN @p_step IS NULL OR @p_step = 0 THEN 1 ELSE @p_step END;
|
||||
SET @v_terminating_value = @p_start + CONVERT(INT,ABS(@p_start-@p_end) / ABS(@v_step) ) * @v_step;
|
||||
|
||||
IF NOT ( ( @p_start > @p_end AND SIGN(@p_step) = 1 )
|
||||
OR
|
||||
( @p_start < @p_end AND SIGN(@p_step) = -1 ))
|
||||
BEGIN
|
||||
|
||||
WHILE ( 1 = 1 )
|
||||
BEGIN
|
||||
INSERT INTO @Integers ( [IntValue] ) VALUES ( @v_i )
|
||||
IF ( @v_i = @v_terminating_value )
|
||||
BREAK
|
||||
SET @v_i = @v_i + @v_step;
|
||||
END;
|
||||
END;
|
||||
END;
|
||||
RETURN
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
-- Fonksiyon bitiş --
|
||||
|
||||
create table #artificial_range(
|
||||
DOC NVARCHAR(50) not null) ;
|
||||
|
||||
INSERT INTO #artificial_range
|
||||
SELECT 'AAA2016'+RIGHT('000000000'+CAST(g.IntValue AS VARCHAR(9)),9) AS generate_series FROM generate_series(1,4000,1) g;
|
||||
--Fatura belge no şablonunun nasıl ise. Örnekteki şablonda örnek fatura serisi şu şekilde AAA2016000001373. Yani başlangıcı AAA2016, sonrasında sıfırla tamamlanan 9 karakter.
|
||||
|
||||
select * from #artificial_range r
|
||||
WHERE r.DOC NOT IN(SELECT FICHENO FROM LG_001_01_INVOICE)
|
||||
ORDER BY r.DOC ASC
|
||||
|
||||
If(OBJECT_ID('tempdb..#artificial_range') Is Not Null)
|
||||
Begin
|
||||
Drop Table #artificial_range
|
||||
End
|
||||
Loading…
x
Reference in New Issue
Block a user