Logo Go3'e Sql ile Sipariş Kayıt

Merhabalar Logo Go3 lisansında ObjectDll olmadığı için dışarıdan sipariş kaydını Sql yada Xml ile yapmak gerekiyor. Aşağıda Sql ile kayıt için iki stored procedure var. Bu kayıtları atarken aynı transaction içinde yapmayı unutmayın.

Başlık Stored Procedure'ü


CREATE PROCEDURE [dbo].[EkleSatisSiparisBaslik]
@CariID AS VARCHAR(50)
,@SatisPersoneliID AS VARCHAR(50) = 1
,@DepoKodu AS INT = 0
,@AraToplam AS FLOAT
,@IskontoTutari AS FLOAT
,@KDVTutari AS FLOAT
,@GenelToplam AS FLOAT
,@Aciklama AS VARCHAR(50)= NULL
,@TakipNo AS VARCHAR(20)= NULL
,@KayitYapanKullaniciID AS VARCHAR(50) = 1
AS

DECLARE @FisNo AS VARCHAR(50) 

EXEC GetirBelgeSeri 'SIPARIS', @DepoKodu,@FisNo OUTPUT

PRINT @FisNo

SET @Aciklama = @FisNo + ' ' + @Aciklama

INSERT INTO GO3..LG_100_01_ORFICHE(
--LOGICALREF,
TRCODE, --8
FICHENO, -- EVRAKNO 
DATE_, -- TARIH DK SIZ
TIME_ , -- ?
CLIENTREF , -- CARIKODU
TOTALDISCOUNTS, -- KDV SIZ INDIRIM TUTARI
TOTALDISCOUNTED, -- KDV SIZ INDIRIM UYGULANMIS TUTAR
TOTALVAT  , -- TOTALDICOUNTED IN KDVSI
GROSSTOTAL  , -- INDIRIMSIZ KDVSIZ TUTAR
NETTOTAL , -- INDIRIMLI KDVLI GENEL TOPLAM
CAPIBLOCK_CREATEDBY, -- KAYITYAPANKULLANICI
CAPIBLOCK_CREADEDDATE, -- KAYITTARIHI
CAPIBLOCK_CREATEDHOUR, -- KAYITSAATI,
CAPIBLOCK_CREATEDMIN, -- KAYIT DAK
CAPIBLOCK_CREATEDSEC, -- KAYIT SANIYE
SALESMANREF , -- PLASIYER KODU
GENEXCTYP, -- 2
RECSTATUS, -- 1
SOURCEINDEX, -- DEPONO
SOURCECOSTGRP, -- DEPONO
[STATUS], -- SIPARIS DURUM
GENEXP1, -- ACIKLAMA
DOCTRACKINGNR, -- DOKUMANIZLEMENUMARASI
BRANCH 
)
VALUES
(
1, 
@FisNo, -- FICHENO > EVRAKNO 
 CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101)), -- TARIH DK SIZ
(GO3.DBO.LG_TIMETOINT(DATEPART(HOUR,GETDATE()),DATEPART(MINUTE,GETDATE()),DATEPART(SECOND,GETDATE()))) , -- FTIME
@CariID , -- CARIKODU
@IskontoTutari, --TOTALDISCOUNTS
@AraToplam, -- TOTALDISCOUNTED, 
@KDVTutari, -- TOTALVAT
@AraToplam + @IskontoTutari, -- GROSSTOTAL
@GenelToplam, -- NETTOTAL
@KayitYapanKullaniciID, -- KAYITYAPANKULLANICI
CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101)), -- KAYITTARIHI
DATEPART(HOUR,GETDATE()), -- KAYITSAATI,
DATEPART(MINUTE,GETDATE()), -- KAYIT DAK
DATEPART(SECOND,GETDATE()), -- KAYIT SANIYE
@SatisPersoneliID , -- PLASIYER KODU
2, -- 2
1, -- 1
@DepoKodu,
@DepoKodu,
4,--[STATUS] -- SIPARIS DURUM 1 ONERI 4 SEVKEDILEBILIR
@Aciklama,--GENEXP3, -- ACIKLAMA
@TakipNo,--DOCTRACKINGNR -- DOKUMANIZLEMENUMARASI
0 --BRANCH 
)

SELECT FisNo = @FisNo, FisID= SCOPE_IDENTITY()  

GO



Satır Stored Procedure'ü


CREATE PROCEDURE [dbo].[EkleSatisSiparisSatir]
@CariID AS VARCHAR(50)
,@DepoKodu AS INT = 0
,@StokID  AS VARCHAR(50)
,@SatirNo AS INT 
,@Miktar AS INT
,@KDV AS FLOAT
,@SatirKDVTutari AS FLOAT
,@SatirBirimFiyati AS FLOAT
,@SatirIskontoTutari AS FLOAT
,@SatirIskontoOrani AS FLOAT 
,@SatirTutari AS FLOAT
,@SatisPersoneliID AS VARCHAR(50) = 1
,@SatirTipi AS int = 0
,@SatirAciklama AS VARCHAR(250) = NULL
AS

DECLARE @PRRATE AS FLOAT
DECLARE @PRCURR AS INT
DECLARE @PRPRICE AS FLOAT

SELECT TOP 1 @PRCURR=CURRENCY FROM GO3..LG_100_PRCLIST
WHERE 1=1
AND CARDREF=@StokID 
AND PTYPE=2 
ORDER BY LOGICALREF DESC

IF @PRCURR!=160
BEGIN

 SELECT TOP 1 @PRRATE=RATES2 FROM GO3..L_DAILYEXCHANGES WHERE CRTYPE=@PRCURR AND EDATE<=GETDATE() ORDER BY EDATE DESC

 SET @PRPRICE = ROUND((@SatirBirimFiyati*@Miktar) / @PRRATE,4)

END
ELSE
BEGIN

 SET @PRRATE=0
 SET @PRPRICE = @SatirBirimFiyati*@Miktar

END

DECLARE @ORDFICHEREF AS INT

SELECT @ORDFICHEREF=MAX(LOGICALREF) FROM GO3..LG_100_01_ORFICHE



INSERT INTO GO3..LG_100_01_ORFLINE(,
TRCODE , --8
STOCKREF , -- STOK LOGICALREF
LINETYPE, -- 0
DATE_, -- TARIH STSIZ
TIME_, --256
SOURCEINDEX , -- DEPOKODU
SOURCECOSTGRP , -- DEPOKODU
ORDFICHEREF, -- FISBASLIK ID
LINENO_, -- SATIR NO
CLIENTREF, -- CARIID
AMOUNT , -- MIKTAR
RESERVEAMOUNT, -- REZERVE MIKTARI
PRICE, -- STOK BIRIM FIYAT
TOTAL, -- STOK TUTAR
DISTCOST , -- INDIRIM TUTARI KDVSIZ
DISTDISC , -- INDIRIM TUTARI KDVSIZ
PRCURR, -- FIYAT LISTESINDEKI FIYAT TURU TL > 160 EUR > 20 DOLAR 1
PRRATE, -- DOVIZ KURU
PRPRICE, -- DOVIZLI FIYATI TL TOTAL / PRRATE
UOMREF , -- 23
USREF, --5
UINFO1 , --1
UINFO2 , --1
VAT , -- KDVORANI
VATAMNT, -- KDVTUTARI
VATMATRAH, -- KDVNIN MATRAHI SATIR NET TUTAR
LINENET, -- SATIR NET TUTAR
SALESMANREF, -- SATIS PERSONELI
RECSTATUS, -- 1
DETLINE, --0
VARIANTREF, -- 0
SHIPPEDAMOUNT,-- 0
DORESERVE,-- 0 REZERVE ET 1 ETME 0
CLOSED,-- 0
CANCELLED,-- 0
STATUS,-- 1
VATINC,-- 0
OFFTRANSREF,-- 0
OFFERREF,-- 0
PREVLINEREF,-- 0
PREVLINENO,-- 0
AFFECTCOLLATRL,-- 0
AFFECTRISK,-- 0
WITHPAYTRANS,-- 0
DEVIR ,   -- 0
BRANCH, --0
LINEEXP
)
VALUES
(
1, 
@StokID,
@SatirTipi, -- LINETYPE
 CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101)), -- TARIH DK SIZ
(GO3.DBO.LG_TIMETOINT(DATEPART(HOUR,GETDATE()),DATEPART(MINUTE,GETDATE()),DATEPART(SECOND,GETDATE()))) , -- FTIME
@DepoKodu,
@DepoKodu,
@ORDFICHEREF, --ORDFICHEREF
ISNULL( ( SELECT MAX(LINENO_) FROM GO3..LG_100_01_ORFLINE WHERE ORDFICHEREF=@ORDFICHEREF) ,0)+1 ,--@SatirNo, -- LINENO_
@CariID , -- CARIKODU
@Miktar, --AMOUNT
@Miktar, --RESERVEAMOUNT, -- REZERVE MIKTARI
@SatirBirimFiyati, --PRICE
@SatirBirimFiyati*@Miktar, --TOTAL
@SatirIskontoTutari,--DISTCOST , -- INDIRIM TUTARI KDVSIZ
@SatirIskontoTutari,--DISTDISC , -- INDIRIM TUTARI KDVSIZ
@PRCURR, -- FIYAT LISTESINDEKI FIYAT TURU TL > 160 EUR > 20 DOLAR 1
@PRRATE, -- DOVIZ KURU
@PRPRICE, -- DOVIZLI FIYATI TL TOTAL / PRRATE
23,--UOMREF , -- 23
5,--USREF, --5
1,--UINFO1 , --1
1,--UINFO2 , --1
@KDV, -- VAT
@SatirKDVTutari, --VATAMNT
@SatirTutari, --VATMATRAH
@SatirTutari, -- LINENET
@SatisPersoneliID, --SALESMANREF
1,--RECSTATUS, -- 1
0 ,-- DETLINE
0 , --VARIANTREF, -- 0
0 , --SHIPPEDAMOUNT,-- 0
0 , --DORESERVE,-- 0 REZERVE ET 1 ETME 0
0 , --CLOSED,-- 0
0 , --CANCELLED,-- 0
1 , --STATUS,-- 1
0 , --VATINC,-- 0
0 , --OFFTRANSREF,-- 0
0 , --OFFERREF,-- 0
0 , --PREVLINEREF,-- 0
0 , --PREVLINENO,-- 0
0 , --AFFECTCOLLATRL,-- 0
0 , --AFFECTRISK,-- 0
0 , --WITHPAYTRANS,-- 0
0 , --DEVIR    -- 0
0, --BRANCH --0
@SatirAciklama -- LINEEXP
)

DECLARE @KaynakSatirID AS VARCHAR(50)
SELECT @KaynakSatirID=SCOPE_IDENTITY()

IF @SatirIskontoOrani>0
BEGIN

 INSERT INTO GO3..LG_100_01_ORFLINE(
 TRCODE , --8
 STOCKREF , -- STOK LOGICALREF
 LINETYPE, -- 0
 DATE_, -- TARIH STSIZ
 TIME_, --256
 SOURCEINDEX , -- DEPOKODU
 SOURCECOSTGRP , -- DEPOKODU
 ORDFICHEREF, -- FISBASLIK ID
 LINENO_, -- SATIR NO
 CLIENTREF, -- CARIID
 AMOUNT , -- MIKTAR
 PRICE, -- STOK BIRIM FIYAT
 TOTAL, -- STOK TUTAR
 DISTCOST , -- INDIRIM TUTARI KDVSIZ
 DISTDISC , -- INDIRIM TUTARI KDVSIZ,
 DISCPER , -- ISKONTO ORANI
 PRCURR, -- 160 TL
 UOMREF , -- 23
 USREF, --5
 UINFO1 , --1
 UINFO2 , --1
 VAT , -- KDVORANI
 VATAMNT, -- KDVTUTARI
 VATMATRAH, -- KDVNIN MATRAHI SATIR NET TUTAR
 LINENET, -- SATIR NET TUTAR
 SALESMANREF, -- SATIS PERSONELI
 RECSTATUS, -- 1
 DETLINE, --0
 VARIANTREF, -- 0
 SHIPPEDAMOUNT,-- 0
 DORESERVE,-- 0
 CLOSED,-- 0
 CANCELLED,-- 0
 STATUS,-- 1
 VATINC,-- 0
 OFFTRANSREF,-- 0
 OFFERREF,-- 0
 PREVLINEREF,-- 0
 PREVLINENO,-- 0
 AFFECTCOLLATRL,-- 0
 AFFECTRISK,-- 0
 WITHPAYTRANS,-- 0
 DEVIR,    -- 0
 PARENTLNREF
 )
 VALUES
 (
 1, 
 0, -- STOKREF
 2, -- LINETYPE
  CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101)), -- TARIH DK SIZ
 (GO3.DBO.LG_TIMETOINT(DATEPART(HOUR,GETDATE()),DATEPART(MINUTE,GETDATE()),DATEPART(SECOND,GETDATE()))) , -- FTIME
 @DepoKodu,
 @DepoKodu,
 @ORDFICHEREF, --( SELECT MAX(LOGICALREF) FROM GO3..LG_100_01_ORFICHE ), --STFICHELNNO
 ISNULL( ( SELECT MAX(LINENO_) FROM GO3..LG_100_01_ORFLINE WHERE ORDFICHEREF=@ORDFICHEREF) ,0)+1 ,--@SatirNo, -- LINENO_
 @CariID , -- CARIKODU
 0, --AMOUNT
 0, --PRICE
 @SatirIskontoTutari, --TOTAL
 0,--DISTCOST , -- INDIRIM TUTARI KDVSIZ
 0,--DISTDISC , -- INDIRIM TUTARI KDVSIZ
 @SatirIskontoOrani, -- DISCPER SatirIskonto 
 0, -- TL PRCURR
 0,--UOMREF , -- 23
 0,--USREF, --5
 1,--UINFO1 , --1
 1,--UINFO2 , --1
 0, -- VAT
 0, --VATAMNT
 0, --VATMATRAH
 0, -- LINENET
 @SatisPersoneliID, --SALESMANREF
 1,--RECSTATUS, -- 1
 0, -- DETLINE
 0 , --VARIANTREF, -- 0
 0 , --SHIPPEDAMOUNT,-- 0
 0 , --DORESERVE,-- 0
 0 , --CLOSED,-- 0
 0 , --CANCELLED,-- 0
 1 , --STATUS,-- 1
 0 , --VATINC,-- 0
 0 , --OFFTRANSREF,-- 0
 0 , --OFFERREF,-- 0
 0 , --PREVLINEREF,-- 0
 0 , --PREVLINENO,-- 0
 0 , --AFFECTCOLLATRL,-- 0
 0 , --AFFECTRISK,-- 0
 0 , --WITHPAYTRANS,-- 0
 0 , --DEVIR    -- 0
 @KaynakSatirID
 )
END


GO

Yorumlar

  1. teşekkür ederim çok uğraşıp yapamadığım bir şeydi bu . deneyeceğim..

    YanıtlaSil
  2. merhaba go3 versiyonuna kayıt yapabiliyorum ama
    Fatura Kayıtta Yaşanan Program Harici Giriş Yapılmış uyarısı alıyorum.
    logo tiger de bu normal evet,fakat go3 te neden bu uyarıyı alıyorum yardımcı olursanız sevinirim.

    YanıtlaSil
    Yanıtlar
    1. Logo'ya çok hakim değilim fakat bildiğim kadarıyla SQL lisansı almak gerekiyor.
      SQL lisansı almayınca sql ile yapılan kayıtlara çizgi atıyor.

      Sil
    2. Çizgi atmaması için veritabanı kullanım lisansı almanız gerekli

      Sil
  3. Öncelikle paylaşımınız için teşekkür ederim.Rica etsem kullanımı için ufak bir örnek paylaşabilir misiniz? Excel,php tek sayfa vb. ihtiyaç hasıl oldu ancak Procedure oluşturduktan sonra nasıl kullanmalıyız ?

    YanıtlaSil
  4. MERHABA EXEC GetirBelgeSeri proceduru nerede tanımlı acaba?

    YanıtlaSil
  5. Merhabalar GetirBelgeSeri SP 'si bizim kendi oluşturduğumuz belge numaratörüne bağlı çalışıyor.

    GetirBelgeSeri'den dönen değer @FisNo değişkenini dolduruyor.
    Siz isterseniz @FisNo değişkenini kendiniz doldurabilirisiniz.

    Kolay gelsin.

    YanıtlaSil

Yorum Gönder