Logo Tiger'da Tiger2sys ile yeni bir dönem açılırken "Tarihler Mali yıl başlangıcı ile uyumlu değil" hatası geldiğinde;
Bu hata, önceki dönemin başlangıç zamanının yılbaşından başlamadığı durumlarda görülür.
Yeni yılda 1 Ocak'tan dönemi başlatabilmek için aşağıdaki sql cümlecikleri ile ;
SELECT * FROM L_CAPIFIRM WHERE NR=47
--ilk sorguyla firmanın LOGICALREF'i bulunur
--UPDATE L_CAPIFIRM SET BEGMON=1,BEGDAY=1 WHERE LOGICALREF=218
--ikinci sorguyla başlangıç gün ve ay bilgisi 1 olarak update edilir.
Bu işlemleri yaptıktan sonra yeni dönemi tiger2sys üzerinden açabilirsiniz.
C sharp Türkçe karakter kontrol metodu
Eğer veritabanına Türkçe karakter yazmak istemiyorsanız, aşağıdaki metodu kullanabilirsiniz.
{
string YeniMetin = "";
string TurkceKarakterler="şŞçÇüÜİıöÖğĞ";
string YeniKarakterler ="sScCuUIioOgG";
for (int i = 0; i < EskiMetin.Length; i++)
{
bool Varmi = false;
for (int k = 0; k < TurkceKarakterler.Length; k++)
{
if (EskiMetin[i] == TurkceKarakterler[k])
{
YeniMetin += YeniKarakterler[k];
Varmi = true;
break;
}
}
if (!Varmi)
{
YeniMetin += EskiMetin[i];
}
}
return YeniMetin;
}
Kullanımı:public static string TurkceKarakterleriKaldir(string EskiMetin)
_Name += "MAIL_METIN,";
_Values += "'" + Tools.TurkceKarakterleriKaldir(HTMLCode) + "',";
{
string YeniMetin = "";
string TurkceKarakterler="şŞçÇüÜİıöÖğĞ";
string YeniKarakterler ="sScCuUIioOgG";
for (int i = 0; i < EskiMetin.Length; i++)
{
bool Varmi = false;
for (int k = 0; k < TurkceKarakterler.Length; k++)
{
if (EskiMetin[i] == TurkceKarakterler[k])
{
YeniMetin += YeniKarakterler[k];
Varmi = true;
break;
}
}
if (!Varmi)
{
YeniMetin += EskiMetin[i];
}
}
return YeniMetin;
}
Tiger'da Cari Hesaba Muhasebe hesap kodunu otomatik olarak aktarmak
Tiger'da Cari Hesaba Muhasebe hesap kodunu otomatik olarak aktarmak için aşağıdaki SQL scriptini çalıştırabilirsiniz.
DECLARE @carilref INT
DECLARE @carimuhlref INT
DECLARE @muhlref INT
DECLARE @carikodu varchar(50)
DECLARE @definiti varchar(50)
DECLARE @muhasebekodu varchar(50)
DECLARE @carimuhlref2 INT
DECLARE @muhlref2 INT
DECLARE @lastCarimuhSeq INT
DECLARE @eksikkayitsayisi INT
DECLARE processes CURSOR FOR
SELECT CARI.LOGICALREF,CARI.CODE AS CARI_KODU,CARIMUH.LOGICALREF AS CARIMUH_LREF,MUH.CODE AS MUHASEBE_KODU FROM LG_107_CLCARD CARI WITH (NOLOCK)
LEFT OUTER JOIN LG_107_CRDACREF CARIMUH WITH (NOLOCK) ON CARIMUH.CARDREF=CARI.LOGICALREF AND CARIMUH.TRCODE = 5
LEFT OUTER JOIN LG_107_EMUHACC MUH WITH (NOLOCK) ON CARIMUH.ACCOUNTREF=MUH.LOGICALREF
WHERE (MUH.CODE<>CARI.CODE OR MUH.CODE IS NULL) and SUBSTRING(CARI.CODE,5,2) = '47' AND CARI.CARDTYPE<>22 and CARI.CODE NOT LIKE '25%' ORDER BY CARI.CODE
OPEN processes
FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
WHILE @@FETCH_STATUS = 0
BEGIN
--ilk olarak LG_107_CRDACREF tablosunda kayıt var mı kontrol edilecek. eğer varsa ve muhasebe kodu yok veya hatalıysa muhasebe tablosundan
--kayıt aktarılacak.
set @muhlref2 = 0
SELECT @muhlref2=LOGICALREF FROM LG_107_EMUHACC where CODE = @carikodu
if @muhlref2 = 0
begin
insert into #EksikKayitTableGintem (Firma,CariKodu) values (107,@carikodu)
end
else
begin
if @carimuhlref IS NOT NULL
begin
UPDATE [LG_107_CRDACREF]
SET
[TRCODE] = 5
,[ACCOUNTREF] = @muhlref2
WHERE [LOGICALREF] = @carimuhlref
print 'update' + cast(@carimuhlref as varchar(20))
end
ELSE
BEGIN
print 'insert' + cast(@carimuhlref as varchar(20))
SELECT @lastCarimuhSeq = LASTLREF from LG_107_CRDACREFSEQ where ID=1
UPDATE LG_107_CRDACREFSEQ SET LASTLREF = @lastCarimuhSeq + 1 WHERE ID=1
INSERT INTO [LG_107_CRDACREF]
([LOGICALREF],[TRCODE],[CARDREF],[TYP],[ACCOUNTREF],[CENTERREF],[SITEID],[RECSTATUS],[ORGLOGICREF],[PROJECTREF])
VALUES (@lastCarimuhSeq ,5 ,@carilref,1 ,@muhlref2 ,1 ,0,0,0 ,0)
END
end
--PRINT cast(@muhlref2 as varchar(20)) + '-' + @carikodu
FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
END
CLOSE processes
DEALLOCATE processes
DECLARE @carilref INT
DECLARE @carimuhlref INT
DECLARE @muhlref INT
DECLARE @carikodu varchar(50)
DECLARE @definiti varchar(50)
DECLARE @muhasebekodu varchar(50)
DECLARE @carimuhlref2 INT
DECLARE @muhlref2 INT
DECLARE @lastCarimuhSeq INT
DECLARE @eksikkayitsayisi INT
DECLARE processes CURSOR FOR
SELECT CARI.LOGICALREF,CARI.CODE AS CARI_KODU,CARIMUH.LOGICALREF AS CARIMUH_LREF,MUH.CODE AS MUHASEBE_KODU FROM LG_107_CLCARD CARI WITH (NOLOCK)
LEFT OUTER JOIN LG_107_CRDACREF CARIMUH WITH (NOLOCK) ON CARIMUH.CARDREF=CARI.LOGICALREF AND CARIMUH.TRCODE = 5
LEFT OUTER JOIN LG_107_EMUHACC MUH WITH (NOLOCK) ON CARIMUH.ACCOUNTREF=MUH.LOGICALREF
WHERE (MUH.CODE<>CARI.CODE OR MUH.CODE IS NULL) and SUBSTRING(CARI.CODE,5,2) = '47' AND CARI.CARDTYPE<>22 and CARI.CODE NOT LIKE '25%' ORDER BY CARI.CODE
OPEN processes
FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
WHILE @@FETCH_STATUS = 0
BEGIN
--ilk olarak LG_107_CRDACREF tablosunda kayıt var mı kontrol edilecek. eğer varsa ve muhasebe kodu yok veya hatalıysa muhasebe tablosundan
--kayıt aktarılacak.
set @muhlref2 = 0
SELECT @muhlref2=LOGICALREF FROM LG_107_EMUHACC where CODE = @carikodu
if @muhlref2 = 0
begin
insert into #EksikKayitTableGintem (Firma,CariKodu) values (107,@carikodu)
end
else
begin
if @carimuhlref IS NOT NULL
begin
UPDATE [LG_107_CRDACREF]
SET
[TRCODE] = 5
,[ACCOUNTREF] = @muhlref2
WHERE [LOGICALREF] = @carimuhlref
print 'update' + cast(@carimuhlref as varchar(20))
end
ELSE
BEGIN
print 'insert' + cast(@carimuhlref as varchar(20))
SELECT @lastCarimuhSeq = LASTLREF from LG_107_CRDACREFSEQ where ID=1
UPDATE LG_107_CRDACREFSEQ SET LASTLREF = @lastCarimuhSeq + 1 WHERE ID=1
INSERT INTO [LG_107_CRDACREF]
([LOGICALREF],[TRCODE],[CARDREF],[TYP],[ACCOUNTREF],[CENTERREF],[SITEID],[RECSTATUS],[ORGLOGICREF],[PROJECTREF])
VALUES (@lastCarimuhSeq ,5 ,@carilref,1 ,@muhlref2 ,1 ,0,0,0 ,0)
END
end
--PRINT cast(@muhlref2 as varchar(20)) + '-' + @carikodu
FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
END
CLOSE processes
DEALLOCATE processes
How to check if column exists in SQL Server table
CREATE FUNCTION ColumnExists(@TableName varchar(100), @ColumnName varchar(100))
RETURNS varchar(1) AS
BEGIN
DECLARE @Result varchar(1);
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = @TableName AND COLUMN_NAME = @ColumnName)
BEGIN
SET @Result = 'T'
END
ELSE
BEGIN
SET @Result = 'F'
END
RETURN @Result;
END
GO
GRANT EXECUTE ON [ColumnExists] TO [whoever]
GO
USAGE:
IF ColumnExists('LG_107_SPECODES', 'MARKA') = 'F'
BEGIN
ALTER TABLE LG_107_SPECODES
ADD MARKA varChar(50) NOT NULL
END
GO
RETURNS varchar(1) AS
BEGIN
DECLARE @Result varchar(1);
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = @TableName AND COLUMN_NAME = @ColumnName)
BEGIN
SET @Result = 'T'
END
ELSE
BEGIN
SET @Result = 'F'
END
RETURN @Result;
END
GO
GRANT EXECUTE ON [ColumnExists] TO [whoever]
GO
USAGE:
IF ColumnExists('LG_107_SPECODES', 'MARKA') = 'F'
BEGIN
ALTER TABLE LG_107_SPECODES
ADD MARKA varChar(50) NOT NULL
END
GO
Kaydol:
Yorumlar (Atom)
BlackListIP control on Serenity platform (.NET Core)
In the Serenity platform, if you want to block IPs that belong to people you do not want to come from outside in the .net core web project,...
-
Logo Tiger programında kullanılan veritabanı tabloları aşağıdadır. 1. XXX olarak üç digit ile gösterilen bölüm firma numarasını belirtir....
-
Devexpress AspxGridView kolonlarında filtre türünü değiştirmek için grid üzerindeki ilgili kolonda Settings--> AutoFilterCondition = defa...
-
TABLO ADI AÇIKLAMA L_PERSONEL Çalışma Alanı Tanımları L_SYSLOG Kullanıcı Kaydı İzleme L_L...
