Netsis Modül Bazlı Seri Kod Numara üretici

Merhabalar ;

Netsis sisteminde Seri kod bazlı kişi bazlı numara üretici fonksiyonu için ;

İlgili tabloyu tanımlayınız.

CREATE TABLE TBL_SERI_TANIMLAMA (
  ID INT IDENTITY
 ,KUL_ID INT NULL
 ,SERI_NO NVARCHAR(50) NULL
 ,MODUL_NO NVARCHAR(MAX) NULL
 ,PROGRAM_NO NVARCHAR(MAX) NULL
 ,YEDEK NVARCHAR(MAX) NULL
 ,YEDEK2 NVARCHAR(MAX) NULL
 ,CONSTRAINT PK_tbl_name_ID PRIMARY KEY CLUSTERED (ID)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Öncelikle Form Açılışlarında ilgili kullanıcıyı tesbit edip işlem yapmalıyız.

Netsis Form Açılış eventine ;

'msgbox netsiscore.NetLibSession.AktifModulNo
'msgbox netsiscore.NetLibSession.AktifProgramNo

' ---------------------- OMER ÇARNAÇAR KODLAMA -------------------
 
 
IF  LEFT(NETSISCORE.NetLibSession.SirketAdi,5)="ŞİRKET"   THEN
     IF  NETSISCORE.NetLibSession.AktifModulNo="MODUL"     THEN
      IF   NETSISCORE.NetLibSession.AktifProgramNo="PROGRAMNO"     THEN
      'NUMARA  KONTROL  YETKISI KONTROL
     
       SET y=NETSISCORE.NetLibDB.GetNewQuery
       SORGU = "SELECT   dbo._FN_NUMARA_URETICI("&NETSISCORE.NetLibSession.NETSISUSERID&",'"&NETSISCORE.NetLibSession.AktifModulNo&"','"&NETSISCORE.NetLibSession.AktifProgramNo&"','ACILIS')"
       Y.RECSQL(SORGU)
     ' MSGBOX SORGU
     NUMARA.TEXT=  y.fields(0).asstring  
      NUMARA.PropertyValue("ENABLED")=FALSE
      
         Y.CLOSE 
 
             END IF
         END IF
  END IF
CREATE FUNCTION dbo._FN_NUMARA_URETICI
(
@KUL_ID INT,@MODUL_NO NVARCHAR(MAX),@PROGRAM_NO NVARCHAR(MAX) ,@SERI_NO NVARCHAR(25)
)
-- WITH ENCRYPTION, SCHEMABINDING, EXECUTE AS CALLER|SELF|OWNER|USER
RETURNS NVARCHAR(MAX)
AS BEGIN



DECLARE @SERI_KOD NVARCHAR(MAX);
DECLARE @URETILEN_NO NVARCHAR(MAX);
DECLARE @KONTROL INT;

 
IF @SERI_NO ='ACILIS' BEGIN  
	SELECT
		@SERI_KOD = SERI_NO
 
	FROM TBL_SERI_TANIMLAMA
	WHERE KUL_ID = @KUL_ID
 
 SET @KONTROL =1
  
END
 IF @SERI_NO <> 'ACILIS'
 BEGIN
	 SELECT
		 @SERI_KOD = SERI_NO,@KONTROL=ISNULL(  COUNT(KUL_ID),0)

	 FROM TBL_SERI_TANIMLAMA
	 WHERE KUL_ID = @KUL_ID   GROUP BY SERI_NO


	 IF @SERI_KOD = @SERI_NO  BEGIN  
     	SET @KONTROL =1
     END
	  IF @SERI_KOD <> @SERI_NO
	  BEGIN
		  SET @KONTROL = 0
	  END


 
 END
 

IF @MODUL_NO = 1 AND @PROGRAM_NO = 3 AND @KONTROL <>0 BEGIN
 

--SELECT  @URETILEN_NO = 'ITD'+ REPLICATE('0',15-LEN(CONVERT(INT,RIGHT(FATIRS_NO,12))))+ CAST(  CONVERT(INT, MAX(RIGHT( FATIRS_NO,12))+1) AS NVARCHAR(MAX)) FROM TBLFATUIRS WHERE LEFT( FATIRS_NO,3) = 'ITD' ORDER BY KAYITTARIHI DESC

SELECT  @URETILEN_NO = @SERI_KOD+ CAST(YEAR(GETDATE()) AS NVARCHAR(MAX)) + REPLICATE('0',8-LEN(CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)) FROM TBLFATUIRS WHERE LEFT( FATIRS_NO,3) = @SERI_KOD  


END
---SATICI SİPARİŞİ
IF @MODUL_NO = 1 AND @PROGRAM_NO = 8  AND @KONTROL <> 0   BEGIN  
	SELECT
		@URETILEN_NO = @SERI_KOD + CAST(YEAR(GETDATE()) AS NVARCHAR(MAX))+ REPLICATE('0',8-LEN(CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10))
	FROM TBLSIPAMAS
	WHERE LEFT(FATIRS_NO, 3) = @SERI_KOD  

END

---TALEPDEN SİP OLUŞTURMA
IF @MODUL_NO = 40
	AND @PROGRAM_NO = 6
	AND @KONTROL <> 0
BEGIN
	SELECT
		@URETILEN_NO = @SERI_KOD + CAST(YEAR(GETDATE()) AS NVARCHAR(MAX)) + REPLICATE('0',8-LEN(CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10))
	FROM TBLSIPAMAS
	WHERE LEFT(FATIRS_NO, 3) = @SERI_KOD

END
IF @MODUL_NO = 40
	AND @PROGRAM_NO = 1 AND @KONTROL <> 0 
BEGIN
	SELECT
		@URETILEN_NO = @SERI_KOD + CAST(YEAR(GETDATE()) AS NVARCHAR(MAX))+REPLICATE('0',8-LEN(CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10))
	FROM TBLTEKLIFMAS
	WHERE LEFT(FATIRS_NO, 3) = @SERI_KOD
END
 ---IRSALIYE NUMARASI URETME
 IF @MODUL_NO = 1
	AND @PROGRAM_NO = 4  AND @KONTROL <> 0
BEGIN
  
 
	SELECT
		@URETILEN_NO = @SERI_KOD + CAST(YEAR(GETDATE()) AS NVARCHAR(MAX))+REPLICATE('0',8-LEN(CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT(FATIRS_NO, 8)) + 1 AS VARCHAR(10))
	FROM TBLTEKLIFMAS
	WHERE LEFT(FATIRS_NO, 3) = @SERI_KOD

    IF @URETILEN_NO IS NULL OR @URETILEN_NO ='' BEGIN  
    	     SET   	@URETILEN_NO = @SERI_KOD + CAST(YEAR(GETDATE()) AS NVARCHAR(MAX))+REPLICATE('0',8-LEN(CAST(MAX(RIGHT('', 8)) + 1 AS VARCHAR(10)))) + CAST(MAX(RIGHT('', 8)) + 1 AS VARCHAR(10))
    END
    
 

END


--E IRSALIYE DEPO TRANSFER
IF @MODUL_NO = 999
	AND @PROGRAM_NO = 999 AND @KONTROL <> 0 
BEGIN
	SELECT
		@URETILEN_NO = @SERI_KOD +RIGHT('00000000000' + CAST(MAX(RIGHT(FATIRS_NO, 5)) + 1 AS VARCHAR(10)), 12)
	FROM TBLFATUIRS
	WHERE LEFT(FATIRS_NO, 3) = @SERI_KOD

 
END


IF @KONTROL = 0 AND @PROGRAM_NO <>4  
BEGIN
	SET @URETILEN_NO = '0'
END
 
	RETURN @URETILEN_NO
END
GO

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir