LOGO OBJECT İLE SORGU İŞLEMİ

TIGER 3 ENTERPRISE

NEDEN İHTİYAÇ DUYULDU: LOGO SYSDE FİRMALARA FARKLI VERİTABANLARI ÜZERİNDEN İŞLEM YAPILABİLMEKTE. DOLAYISIYLA İLGİLİ VERİTABANINDAN OBJECT İLE SORGU KONTROLÜ YAPILIP ONA GÖRE DEVAM EDİLMESİ GEREKMEKTE(PROJE TABLOSU).

ÖNCE SORGUYU CEKMEK İSDEDİGİM TABLO İSMİ TESPİT EDİLİR-GetTableName(https://docs.logo.com.tr/public/wua/logo-objects/logo-objects-kuetuephanesi/unityapplication/gettablename)

string projectTable = AppUnity.GetTableName(229, firmNr, 0);
bool isProjectExists = ObjectProjectCodeControl(projectTable, L.PROJEKODU);
bool canContinue = true;
                        if (!isProjectExists)
                        {
                            canContinue = false;
                            WRITELOG(firmNr.ToString() + " PROJE KODU BULUNAMADI : " + L.PROJEKODU, null);
                        }
private static bool ObjectProjectCodeControl(string table, string code)
{
    bool isExists = false;
    string sql = "SELECT LOGICALREF FROM " + table + " WHERE CODE = '" + code + "'";
    string resultTxt = "";
    UnityObjects.Query Qry = AppUnity.NewQuery();
    Qry.Statement = sql;
    if (Qry.OpenDirect())
    {
        bool res = Qry.First();
        while (res)
        {
            resultTxt = Qry.QueryFields[0].Value.ToString();
            isExists = true;
            res = Qry.Next();
        }
    }
    else
    {
        MessageBox.Show(Qry.DBErrorDesc.ToString());
    }
    Qry.Close();
    return isExists;
}

LOGO Banka İşlem Fişi Kesilmiştir Detay

Logoda kk fişi silerken banka işlem fişi kesilmiştir hatası veren fişlerin bağlarını bulmak için :

 SELECT * FROM (
 SELECT 
	DISTINCT
	Tarih,
	CariFisKKFisNo=(SELECT CLFICHE.FICHENO FROM LG_301_01_CLFICHE CLFICHE WHERE CLFICHE.LOGICALREF=CariFisKKFisRef),
	CariFisMuhasebeFisNo=(SELECT EMFICHE.FICHENO FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=CariFisMuhasebeFisRef),
	BankaFisNo,
	BankaFisMuhasebeFisNo=(SELECT EMFICHE.FICHENO FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=BankaFisMuhasebeFisRef)
 FROM (
	 SELECT 
	 Tarih=BNFICHE.DATE_,
	 CariFisKKFisRef=BNFLINE.CRCARDFCREF,
	 CariFisMuhasebeFisRef=(SELECT CLFICHE.ACCFICHEREF FROM LG_301_01_CLFICHE CLFICHE WHERE CLFICHE.LOGICALREF=(CASE WHEN ISNULL(BNFICHE.CRCARDFCREF,'')=0 THEN BNFLINE.CRCARDFCREF ELSE BNFICHE.CRCARDFCREF END)),
	 BankaFisNo=BNFICHE.FICHENO,
	 BankaFisMuhasebeFisRef=(SELECT EMFICHE.LOGICALREF FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=BNFICHE.ACCFICHEREF)
	 FROM 
		LG_301_01_BNFICHE BNFICHE LEFT JOIN LG_301_01_BNFLINE BNFLINE ON BNFLINE.SOURCEFREF=BNFICHE.LOGICALREF
	  WHERE BNFICHE.TRCODE=1 AND BNFICHE.MODULENR=7
  ) AS TT
  ) AS TF WHERE CariFisKKFisNo='BMS.0073921'

LOGO REÇETE VE ALT MAMÜLLERİ SQL

WITH ItemHierarcyh (STCREF, MAINCREF, CARDTYPE)
AS (
    SELECT STCREF, MAINCREF, CARDTYPE
    FROM LG_123_STCOMPLN
   WHERE MAINCREF = (SELECT I.LOGICALREF FROM LG_123_ITEMS I WHERE I.CODE='RECETE0016') 

    UNION ALL

    SELECT S.STCREF, S.MAINCREF, S.CARDTYPE
    FROM LG_123_STCOMPLN S
    JOIN ItemHierarcyh PH ON S.MAINCREF = PH.STCREF
)
SELECT 
STCREF, 
AltMalzeme=(select I.CODE+'-'+I.NAME from LG_123_ITEMS I WHERE I.LOGICALREF =STCREF),
MAINCREF,
AnaMalzeme=(select I.CODE+'-'+I.NAME from LG_123_ITEMS I WHERE I.LOGICALREF =MAINCREF),
CARDTYPE
FROM ItemHierarcyh  --where CARDTYPE    in (11,12)
OPTION (MAXRECURSION 0)

LOGO ERP MAMUL RECETE

select 
Mamul_ItemRef_=				t.Mamul_ItemRef,
t.Mamul_Kodu,
t.Mamul_Aciklamasi,
t.Mamul_Birim,
AltMalzeme_ReceteRef_=		isnull(t.AltMalzeme2_ReceteRef,t.AltMalzeme_ReceteRef),
AltMalzeme_ItemRef_=		isnull(t.AltMalzeme2_ItemRef,t.AltMalzeme_ItemRef),
AltMalzeme_Kodu=			isnull(t.AltMalzeme2_Kodu,t.AltMalzeme_Kodu),
AltMalzeme_Aciklamasi=		isnull(t.AltMalzeme2_Aciklamasi,t.AltMalzeme_Aciklamasi),
AltMalzeme_Birim=			isnull(t.AltMalzeme2_Birim,t.AltMalzeme_Birim),
AltMalzeme_ReceteMiktar_=	isnull(t.AltMalzeme2_ReceteMiktar,t.AltMalzeme_ReceteMiktar),
AltMalzeme_CARDTYPE_=		isnull(t.AltMalzeme2_CARDTYPE,t.AltMalzeme_CARDTYPE),
HesaplananMiktar=			CASE 
								WHEN t.AltMalzeme2_ReceteMiktar IS NULL THEN t.AltMalzeme_ReceteMiktar 
							ELSE  
								ISNULL(CAST ((t.AltMalzeme_ReceteMiktar/NULLIF(AltMalzeme_Miktar,0.000))*t.AltMalzeme2_ReceteMiktar  AS NUMERIC(10,7)),0.000) 
							END
from (
	select 
		Mamul_ItemRef=				ITEMS.LOGICALREF,
		Mamul_Kodu=					ITEMS.CODE,
		Mamul_Aciklamasi=			ITEMS.NAME,
		Mamul_Birim=				(SELECT NAME FROM LG_123_UNITSETF WITH(NOLOCK) WHERE ITEMS.UNITSETREF = LG_123_UNITSETF.LOGICALREF),
		AltMalzeme_ReceteRef=		REC.LOGICALREF,
		AltMalzeme_ItemRef=			REC.STCREF,
		AltMalzeme_Kodu=			(SELECT SITEMS.CODE FROM LG_123_ITEMS SITEMS WHERE SITEMS.LOGICALREF=REC.STCREF),
		AltMalzeme_Aciklamasi=		(SELECT SITEMS.NAME FROM LG_123_ITEMS SITEMS WHERE SITEMS.LOGICALREF=REC.STCREF),
		AltMalzeme_Birim=			(SELECT NAME FROM LG_123_UNITSETL WITH(NOLOCK) WHERE REC.UOMREF = LG_123_UNITSETL.LOGICALREF),
		AltMalzeme_Miktar=			(SELECT SITEMS.QPRODAMNT FROM LG_123_ITEMS SITEMS WHERE SITEMS.LOGICALREF=REC.STCREF),
		AltMalzeme_ReceteMiktar=	REC.AMNT,
		AltMalzeme_CARDTYPE=		REC.CARDTYPE,
		AltMalzeme2_ReceteRef=		REC2.LOGICALREF,
		AltMalzeme2_ItemRef=		REC2.STCREF,
		AltMalzeme2_Kodu=			(SELECT SITEMS.CODE FROM LG_123_ITEMS SITEMS WHERE SITEMS.LOGICALREF=REC2.STCREF),
		AltMalzeme2_Aciklamasi=		(SELECT SITEMS.NAME FROM LG_123_ITEMS SITEMS WHERE SITEMS.LOGICALREF=REC2.STCREF),
		AltMalzeme2_Birim=			(SELECT NAME FROM LG_123_UNITSETL WITH(NOLOCK) WHERE REC2.UOMREF = LG_123_UNITSETL.LOGICALREF),
		AltMalzeme2_ReceteMiktar=	REC2.AMNT,
		AltMalzeme2_CARDTYPE=		REC2.CARDTYPE
	from 
		LG_123_ITEMS ITEMS LEFT JOIN LG_123_STCOMPLN REC ON REC.MAINCREF=ITEMS.LOGICALREF LEFT JOIN LG_123_STCOMPLN REC2 ON REC2.MAINCREF=REC.STCREF
	WHERE 
		ITEMS.CARDTYPE IN (12) AND ITEMS.LOGICALREF IN (SELECT REC.MAINCREF FROM LG_123_STCOMPLN REC) 
) as t