
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
teşekkür ederim çok uğraşıp yapamadığım bir şeydi bu . deneyeceğim..
YanıtlaSilmerhaba go3 versiyonuna kayıt yapabiliyorum ama
YanıtlaSilFatura 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.
Logo'ya çok hakim değilim fakat bildiğim kadarıyla SQL lisansı almak gerekiyor.
SilSQL lisansı almayınca sql ile yapılan kayıtlara çizgi atıyor.
Çizgi atmaması için veritabanı kullanım lisansı almanız gerekli
SilÖ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ıtlaSilMERHABA EXEC GetirBelgeSeri proceduru nerede tanımlı acaba?
YanıtlaSilMerhabalar GetirBelgeSeri SP 'si bizim kendi oluşturduğumuz belge numaratörüne bağlı çalışıyor.
YanıtlaSilGetirBelgeSeri'den dönen değer @FisNo değişkenini dolduruyor.
Siz isterseniz @FisNo değişkenini kendiniz doldurabilirisiniz.
Kolay gelsin.