Netsis'de E-Faturaların Toplu Dışa Aktarımı

Merhabalar

Netsis içinde e-faturaları dışa aktarmak zor olabiliyor. Aşağıdaki sorgu ile fatura xmllerini zip formatında export edebilirsiniz.

DECLARE @KAYITEDILECEKKLASOR NVARCHAR(2000);
DECLARE @DOSYAADI NVARCHAR(2000);
DECLARE @OBJ INT
DECLARE @FATURATARIHI NVARCHAR(100);
DECLARE @FATURANO NVARCHAR(100);
DECLARE @ETTN NVARCHAR(100);
DECLARE @XML VARBINARY(MAX);

SET @KAYITEDILECEKKLASOR = 'C:\Efaturalar'
	
SET NOCOUNT ON

DECLARE KURSOR CURSOR 
FOR

	SELECT 
	EFATURA.TARIH,
	EFATURA.FATIRS_NO,
	EFATURA.UUID,
	CONVERT(VARBINARY(MAX), EFATZARF.XMLBYTES, 1)
	FROM TBLEFATURA EFATURA  WITH (NOLOCK) 
	INNER JOIN TBLEFATZARF  EFATZARF  WITH (NOLOCK)  ON (EFATZARF.ZARFID=EFATURA.ZARFID)
	WHERE 1=1 
	AND EFATZARF.SUBE_KODU=1
	AND EFATZARF.DURUM != '1230'
	AND EFATURA.TARIH BETWEEN '01/01/2021' AND '12/31/2021 00:00'
	AND (ISNULL(EFATURA.YEDEK4,0) <>3)
	AND (EFATURA.FTIRSIP='1' OR EFATURA.FTIRSIP='P' OR EFATURA.FTIRSIP='3') 
	AND EFATZARF.TIP=1
	AND  ISNULL(EFATZARF.FTIRSIP,' ')  NOT IN ('3','4')
	ORDER BY EFATURA.TARIH DESC

OPEN KURSOR

FETCH NEXT FROM KURSOR INTO @FATURATARIHI,@FATURANO,@ETTN,@XML

WHILE @@FETCH_STATUS = 0
BEGIN
	    
    SET @DOSYAADI = @KAYITEDILECEKKLASOR+ '\'+ CONVERT(VARCHAR(2), MONTH(@FATURATARIHI)) + '-'+ @FATURANO + '.zip';
    
    EXEC sp_OACreate 'ADODB.Stream',@OBJ OUTPUT;
    EXEC sp_OASetProperty @OBJ,'Type',1;
    EXEC sp_OAMethod @OBJ,'Open';
    EXEC sp_OAMethod @OBJ,'Write',NULL,@XML;
    EXEC sp_OAMethod @OBJ,'SaveToFile',NULL,@DOSYAADI,2;
    EXEC sp_OAMethod @OBJ,'Close';
    EXEC sp_OADestroy @OBJ;
    
    FETCH NEXT FROM KURSOR INTO @FATURATARIHI,@FATURANO,@ETTN,@XML
END

CLOSE KURSOR
DEALLOCATE KURSOR

Yorumlar