From d1a22e1fe45cd3293910a9697a68db8975261222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?U=C4=9Fur=20=C3=96zp=C4=B1nar?= Date: Fri, 11 Oct 2019 11:47:09 +0300 Subject: [PATCH] seri atlama kontrol --- README.md | 1 + Veri Düzeltmeleri/README.md | 12 ++++ Veri Düzeltmeleri/fatura_atlama_kontrol.sql | 70 +++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 Veri Düzeltmeleri/README.md create mode 100644 Veri Düzeltmeleri/fatura_atlama_kontrol.sql diff --git a/README.md b/README.md index da73dc5..ad2b2a7 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/Veri Düzeltmeleri/README.md b/Veri Düzeltmeleri/README.md new file mode 100644 index 0000000..d11ebd7 --- /dev/null +++ b/Veri Düzeltmeleri/README.md @@ -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 \ No newline at end of file diff --git a/Veri Düzeltmeleri/fatura_atlama_kontrol.sql b/Veri Düzeltmeleri/fatura_atlama_kontrol.sql new file mode 100644 index 0000000..9827c10 --- /dev/null +++ b/Veri Düzeltmeleri/fatura_atlama_kontrol.sql @@ -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