Exemplo n.º 1
0
 public IEnumerable <BO.x31Report> GetList(BO.myQuery mq)
 {
     if (mq.explicit_orderby == null)
     {
         mq.explicit_orderby = "a.x31Name";
     }
     ;
     DL.FinalSqlCommand fq = DL.basQuery.ParseFinalSql(GetSQL1(), mq, _mother.CurrentUser);
     return(_db.GetList <BO.x31Report>(fq.FinalSql, fq.Parameters));
 }
Exemplo n.º 2
0
 public IEnumerable <BO.j03User> GetList(BO.myQuery mq)
 {
     DL.FinalSqlCommand fq = DL.basQuery.ParseFinalSql(GetSQL1(), mq, _mother.CurrentUser);
     return(_db.GetList <BO.j03User>(fq.FinalSql, fq.Parameters));
 }
Exemplo n.º 3
0
 public IEnumerable <BO.o51Tag> GetList(BO.myQuery mq)
 {
     mq.explicit_orderby = "o51_o53.o53Ordinary,o51_o53.o53Name,a.o51Ordinary,a.o51Name";
     DL.FinalSqlCommand fq = DL.basQuery.ParseFinalSql(GetSQL1(), mq, _mother.CurrentUser);
     return(_db.GetList <BO.o51Tag>(fq.FinalSql, fq.Parameters));
 }
Exemplo n.º 4
0
        public static DL.FinalSqlCommand ParseFinalSql(string strPrimarySql, BO.myQuery mq, BO.RunningUser ru, bool bolPrepareParam4DT = false)
        {
            var lis = new List <DL.QueryRow>();

            if (mq.lisJ73 != null)
            {
                ParseJ73Query(ref lis, mq);
            }
            if (mq.IsRecordValid == true)
            {
                AQ(ref lis, "a.ValidUntil>GETDATE()", "", null);
            }
            if (mq.IsRecordValid == false)
            {
                AQ(ref lis, "GETDATE() NOT BETWEEN a.ValidFrom AND a.ValidUntil", "", null);
            }
            if (mq.global_d2 != null && Convert.ToDateTime(mq.global_d2).Hour == 0)
            {
                mq.global_d2 = Convert.ToDateTime(mq.global_d2).AddDays(1).AddMinutes(-1);
            }
            if (mq.global_d1 != null && mq.global_d2 != null)
            {
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "(a.p41PlanStart BETWEEN @d1 AND @d2 OR a.p41PlanEnd BETWEEN @d1 AND @d2 OR (@d1 >= a.p41PlanStart AND @d2<=a.p41PlanEnd))", "d1", mq.global_d1, "AND", null, null, "d2", mq.global_d2);
                }
                if (mq.Prefix == "p44")
                {
                    AQ(ref lis, "a.p41ID IN (select p41ID FROM p41Task WHERE p41PlanStart BETWEEN @d1 AND @d2 OR p41PlanEnd BETWEEN @d1 AND @d2 OR (@d1 >= p41PlanStart AND @d2<=p41PlanEnd))", "d1", mq.global_d1, "AND", null, null, "d2", mq.global_d2);
                }
                if (mq.Prefix == "y02")
                {
                    AQ(ref lis, "p33Date BETWEEN @d1 AND @d2", "d1", mq.global_d1, "AND", null, null, "d2", mq.global_d2);
                }
            }

            if (mq.pids != null && mq.pids.Any())
            {
                AQ(ref lis, mq.PkField + " IN (" + String.Join(",", mq.pids) + ")", "", null);
            }
            if (mq.b03id > 0)
            {
                if (mq.Prefix == "b02")
                {
                    AQ(ref lis, "a.b02ID IN (select b02ID FROM b04StatusGroupBinding WHERE b03ID=@b03id)", "b03id", mq.b03id);
                }
            }
            if (mq.b02id > 0)
            {
                AQ(ref lis, "a.b02ID=@b02id", "b02id", mq.b02id);
            }
            if (mq.b02ids != null && mq.b02ids.Count() > 0)
            {
                switch (mq.Prefix)
                {
                case "z01":
                case "z02":

                    break;

                case "p44":
                    AQ(ref lis, "a.p41ID IN (select p41ID FROM p41Task WHERE b02ID IN (" + string.Join(",", mq.b02ids) + "))", "", null);
                    break;

                default:
                    AQ(ref lis, "a.b02ID IN (select b02ID FROM b02Status WHERE b02ID IN (" + string.Join(",", mq.b02ids) + "))", "", null);
                    break;
                }
            }
            if (mq.j04id > 0)
            {
                AQ(ref lis, "a.j04ID=@j04id", "j04id", mq.j04id);
            }
            if (mq.j72id > 0)
            {
                if (mq.Prefix == "j04")
                {
                    AQ(ref lis, "a.j04ID IN (select j04ID FROM j74TheGridReceiver WHERE j72ID=@j72id)", "j72id", mq.j72id);
                }
            }

            if (mq.DateBetween != null && mq.DateBetweenDays > 0)
            {
                AQ(ref lis, string.Format("(a.p41PlanStart BETWEEN @d1 AND DATEADD(DAY,{0},@d1) OR a.p41PlanEnd BETWEEN @d1 AND DATEADD(DAY,{0},@d1) OR @d1 BETWEEN a.p41PlanStart AND a.p41PlanEnd OR DATEADD(DAY,{0},@d1) BETWEEN a.p41PlanStart AND a.p41PlanEnd)", mq.DateBetweenDays), "d1", mq.DateBetween.Value);
            }
            if (mq.p19id > 0)
            {
                if (mq.Prefix == "p10")
                {
                    AQ(ref lis, "a.p10ID IN (select xa.p10ID FROM p10MasterProduct xa INNER JOIN p13MasterTpv xb ON xa.p13ID=xb.p13ID INNER JOIN p14MasterOper xc ON xb.p13ID=xc.p13ID WHERE xc.p19ID=@p19id)", "p19id", mq.p19id);
                }
                if (mq.Prefix == "p13")
                {
                    AQ(ref lis, "a.p13ID IN (select xa.p13ID FROM p10MasterProduct xa INNER JOIN p13MasterTpv xb ON xa.p13ID=xb.p13ID INNER JOIN p14MasterOper xc ON xb.p13ID=xc.p13ID WHERE xc.p19ID=@p19id)", "p19id", mq.p19id);
                }
            }
            if (mq.p21id > 0)
            {
                if (mq.Prefix == "p10")
                {
                    AQ(ref lis, "a.p10ID IN (select p10ID FROM p22LicenseBinding WHERE p21ID=@p21id)", "p21id", mq.p21id);
                }
                if (mq.Prefix == "p13")
                {
                    AQ(ref lis, "a.p13ID IN (select xb.p13ID FROM p22LicenseBinding xa INNER JOIN p10MasterProduct xb ON xa.p10ID=xb.p10ID WHERE xa.p21ID=@p21id)", "p21id", mq.p21id);
                }
                if (mq.Prefix == "p11" || mq.Prefix == "p12")
                {
                    AQ(ref lis, "a.p21ID=@p21id", "p21id", mq.p21id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p21License' AND a.o23RecordPid=@p21id", "p21id", mq.p21id);
                }
            }
            if (mq.p21id_missing > 0)
            {
                if (mq.Prefix == "p10")
                {
                    AQ(ref lis, "a.p10ID NOT IN (select p10ID FROM p22LicenseBinding WHERE p21ID=@p21id)", "p21id", mq.p21id_missing);
                }
            }
            if (mq.p10id > 0)
            {
                if (mq.Prefix == "p21")
                {
                    AQ(ref lis, "a.p21ID IN (select p21ID FROM p22LicenseBinding WHERE p10ID=@p10id)", "p10id", mq.p10id);
                }
                if (mq.Prefix == "p11")
                {
                    AQ(ref lis, "a.p10ID_Master=@p10id", "p10id", mq.p10id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p10MasterProduct' AND a.o23RecordPid=@p10id", "p10id", mq.p10id);
                }
                if (mq.Prefix == "p14")
                {
                    AQ(ref lis, "a.p13ID IN (select p13ID FROM p10MasterProduct WHERE p10ID=@p10id)", "p10id", mq.p10id);
                }
            }
            if (mq.p12id > 0)
            {
                if (mq.Prefix == "p11" || mq.Prefix == "p15")
                {
                    AQ(ref lis, "a.p12ID=@p12id", "p12id", mq.p12id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p12ClientTpv' AND a.o23RecordPid=@p12id", "p12id", mq.p12id);
                }
            }
            if (mq.p11id > 0)
            {
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p11ClientProduct' AND a.o23RecordPid=@p10id", "p11id", mq.p11id);
                }
                if (mq.Prefix == "p21")
                {
                    AQ(ref lis, "a.p21ID IN (select p21ID FROM p11ClientProduct WHERE p11ID=@p11id)", "p11id", mq.p11id);
                }
                if (mq.Prefix == "p51")
                {
                    AQ(ref lis, "a.p51ID IN (select p51ID FROM p52OrderItem WHERE p11ID=@p11id)", "p11id", mq.p11id);
                }
                if (mq.Prefix == "p52")
                {
                    AQ(ref lis, "a.p11ID=@p11id", "p11id", mq.p11id);
                }
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p52ID IN (select p52ID FROM p52OrderItem WHERE p11ID=@p11id)", "p11id", mq.p11id);
                }
                if (mq.Prefix == "p15")
                {
                    AQ(ref lis, "a.p12ID IN (select p12ID FROM p11ClientProduct WHERE p11ID=@p11id)", "p11id", mq.p11id);
                }
                //if (mq.Prefix == "p44") AQ(ref lis, "a.p41ID IN (select xa.p41ID FROM p41Task xa INNER JOIN p52OrderItem xb ON xa.p52ID=xb.p52ID WHERE xb.p11ID=@p11id)", "p11id", mq.p11id);
                if (mq.Prefix == "p44")
                {
                    AQ(ref lis, "a.p19ID IN (select xa.p19ID FROM p19Material xa INNER JOIN p11ClientProduct xb ON xa.p19Code=xb.p11Code WHERE xb.p11ID=@p11id)", "p11id", mq.p11id);
                }
            }
            if (mq.p13id > 0)
            {
                if (mq.Prefix == "p10" || mq.Prefix == "p14")
                {
                    AQ(ref lis, "a.p13ID=@p13id", "p13id", mq.p13id);
                }
                if (mq.Prefix == "p12")
                {
                    AQ(ref lis, "a.p13ID_Master=@p13id", "p13id", mq.p13id);
                }
                if (mq.Prefix == "p11")
                {
                    AQ(ref lis, "a.p11ID IN (select xa.p11ID FROM p11ClientProduct xa INNER JOIN p12ClientTpv xb ON xa.p12ID=xb.p12ID WHERE xb.p13ID_Master=@p13id)", "p13id", mq.p13id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p13MasterTpv' AND a.o23RecordPid=@p13id", "p13id", mq.p13id);
                }
            }

            if (mq.p28id > 0)
            {
                if (mq.Prefix == "j02" || mq.Prefix == "p26" || mq.Prefix == "p21")
                {
                    AQ(ref lis, "a.p28ID=@p28id", "p28id", mq.p28id);
                }
                if (mq.Prefix == "p11" || mq.Prefix == "p12")
                {
                    AQ(ref lis, "a.p21ID IN (select p21ID FROM p21License WHERE p28ID=@p28id)", "p28id", mq.p28id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p28Company' AND a.o23RecordPid=@p28id", "p28id", mq.p28id);
                }
                if (mq.Prefix == "p51")
                {
                    AQ(ref lis, "a.p28ID=@p28id", "p28id", mq.p28id);
                }
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p52ID IN (select xa.p52ID FROM p52OrderItem xa INNER JOIN p51Order xb ON xa.p51ID=xb.p51ID WHERE xb.p28ID=@p28id)", "p28id", mq.p28id);
                }
            }
            if (mq.j02id > 0)
            {
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'j02Person' AND a.o23RecordPid=@j02id", "j02id", mq.j02id);
                }
                if (mq.Prefix == "p51" || mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.j02ID_Owner=@j02id", "j02id", mq.j02id);
                }
                if (mq.Prefix == "j90" || mq.Prefix == "j92" || mq.Prefix == "x40")
                {
                    AQ(ref lis, "a.j03ID IN (select j03ID FROM j03User WHERE j02ID=@j02id)", "j02id", mq.j02id);
                }
            }
            if (mq.p25id > 0)
            {
                if (mq.Prefix == "p26")
                {
                    AQ(ref lis, "a.p25ID=@p25id", "p25id", mq.p25id);
                }
                if (mq.Prefix == "p18")
                {
                    AQ(ref lis, "a.p25ID=@p25id", "p25id", mq.p25id);
                }
                if (mq.Prefix == "p27")
                {
                    AQ(ref lis, "a.p27ID IN (select xa.p27ID FROM p29MszUnitBinding xa INNER JOIN p26Msz xb ON xa.p26ID=xb.p26ID WHERE xb.p25ID=@p25id)", "p25id", mq.p25id);
                }
            }
            //if (mq.p25ids !=null && mq.p25ids.Count > 0)
            //{
            //    if (mq.Prefix == "p26") AQ(ref lis, "a.p25ID IN (" + string.Join(",", mq.p25ids) + ")", "", null);
            //    if (mq.Prefix == "p18") AQ(ref lis, "a.p25ID IN (" + string.Join(",", mq.p25ids) + ")", "", null);
            //    if (mq.Prefix == "p27") AQ(ref lis, "a.p27ID IN (select xa.p27ID FROM p29MszUnitBinding xa INNER JOIN p26Msz xb ON xa.p26ID=xb.p26ID WHERE xb.p25ID IN (" + string.Join(",", mq.p25ids) + "))", "", null);
            //}
            if (mq.p18flag > 0)
            {
                if (mq.Prefix == "p18")
                {
                    AQ(ref lis, "a.p18Flag=@p18flag", "p18flag", mq.p18flag);
                }
            }
            if (mq.p18flags != null && mq.p18flags.Count() > 0)
            {
                if (mq.Prefix == "p18")
                {
                    AQ(ref lis, "a.p18Flag IN (" + string.Join(",", mq.p18flags) + ")", "", null);
                }
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p41ID IN (select xa.p41ID FROM p44TaskOperPlan xa INNER JOIN p18OperCode xb ON xa.p18ID=xb.p18ID WHERE xb.p18Flag IN (" + string.Join(",", mq.p18flags) + "))", "", null);
                }
            }
            if (mq.p26id > 0)
            {
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p26Msz' AND a.o23RecordPid=@p26id", "p26id", mq.p26id);
                }
                if (mq.Prefix == "p27")
                {
                    AQ(ref lis, "a.p27ID IN (select p27ID FROM p29MszUnitBinding WHERE p26ID=@p26id)", "p26id", mq.p26id);
                }
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p27ID IN (select p27ID FROM p29MszUnitBinding WHERE p26ID=@p26id)", "p26id", mq.p26id);
                }
            }
            if (mq.p26ids != null && mq.p26ids.Count() > 0)
            {
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p27ID IN (select p27ID FROM p29MszUnitBinding WHERE p26ID IN (" + string.Join(",", mq.p26ids) + "))", "", null);
                }
                if (mq.Prefix == "p27")
                {
                    AQ(ref lis, "a.p27ID IN (select p27ID FROM p29MszUnitBinding WHERE p26ID IN (" + string.Join(",", mq.p26ids) + "))", "", null);
                }
            }
            if (mq.p27id > 0)
            {
                if (mq.Prefix == "p18")
                {
                    AQ(ref lis, "a.p25ID IN (select p25ID_HW FROM p27MszUnit WHERE p27ID=@p27id)", "p27id", mq.p27id);                      //zde se musí pracovat s kmenovým typem zařízení definovaným ve středisku!
                }
            }
            if (mq.p27ids != null && mq.p27ids.Count() > 0)
            {
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p27ID IN (" + string.Join(",", mq.p27ids) + ")", "", null);
                }
            }

            if (mq.p41id > 0)
            {
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p41Task' AND a.o23RecordPid=@p41id", "p41id", mq.p41id);
                }
                if (mq.Prefix == "p15")
                {
                    AQ(ref lis, "a.p12ID IN (select xb.p12ID FROM p52OrderItem xa INNER JOIN p11ClientProduct xb ON xa.p11ID=xb.p11ID INNER JOIN p41Task xc ON xa.p52ID=xc.p52ID WHERE xc.p41ID=@p41id)", "p41id", mq.p41id);
                }
                if (mq.Prefix == "p44")
                {
                    AQ(ref lis, "a.p41ID=@p41id", "p41id", mq.p41id);
                }
                if (mq.Prefix == "p45")
                {
                    AQ(ref lis, "a.p41ID=@p41id", "p41id", mq.p41id);
                }

                //zde se musí pracovat s kmenovým typem zařízení definovaným ve středisku!
                if (mq.Prefix == "p18")
                {
                    AQ(ref lis, "a.p25ID IN (select xa.p25ID_HW FROM p27MszUnit xa INNER JOIN p41Task xb ON xa.p27ID=xb.p27ID WHERE xb.p41ID=@p41id)", "p41id", mq.p41id);
                }
            }
            if (mq.p51id > 0)
            {
                if (mq.Prefix == "p52")
                {
                    AQ(ref lis, "a.p51ID=@p51id", "p51id", mq.p51id);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "a.o23Entity LIKE 'p51Order' AND a.o23RecordPid=@p51id", "p51id", mq.p51id);
                }
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p52ID IN (select p52ID FROM p52OrderItem WHERE p51ID=@p51id)", "p51id", mq.p51id);
                }
            }
            if (mq.p52id > 0)
            {
                if (mq.Prefix == "p41")
                {
                    AQ(ref lis, "a.p52ID=@p52id", "p52id", mq.p52id);
                }
            }
            if (mq.o53id > 0)
            {
                if (mq.Prefix == "o51")
                {
                    AQ(ref lis, "a.o53ID=@o53id", "o53id", mq.o53id);
                }
            }

            if (mq.Prefix == "b02" && !string.IsNullOrEmpty(mq.query_by_entity_prefix))
            {
                AQ(ref lis, "a.b02Entity=@prefix", "prefix", mq.query_by_entity_prefix);    //filtr seznamu stavů podle druhu entity
            }
            if (mq.Prefix == "o12" && !string.IsNullOrEmpty(mq.query_by_entity_prefix))
            {
                AQ(ref lis, "a.o12Entity=@prefix", "prefix", mq.query_by_entity_prefix);    //filtr seznamu kategorií podle druhu entity
            }

            if (mq.TheGridFilter != null)
            {
                ParseSqlFromTheGridFilter(mq, ref lis); //složit filtrovací podmínku ze sloupcového filtru gridu
            }
            if (ru.j03EnvironmentFlag == 2)             //odstínit data pouze pro držitele licence, tj. firmu s licencí na p10SwLicenseFlag>0
            {
                //if (mq.Prefix == "j02")
                //{
                //    AQ(ref lis, "(a.p28ID=@p28id_my OR a.j02ID_Owner IN (select j02ID FROM j02Person WHERE p28ID=@p28id_my)", "p28id_my", ru.p28ID);
                //}
                if (mq.Prefix == "o23" || mq.Prefix == "p41" || mq.Prefix == "p31" || mq.Prefix == "p51")
                {
                    AQ(ref lis, "a.j02ID_Owner IN (select j02ID FROM j02Person WHERE p28ID=@p28id_my)", "p28id_my", ru.p28ID);
                }
                if (mq.Prefix == "p52")
                {
                    AQ(ref lis, "a.p51ID IN (select xa.p51ID FROM p51Order xa INNER JOIN j02Person xb ON xa.j02ID_Owner=xb.j02ID WHERE xb.p28ID=@p28id_my)", "p28id_my", ru.p28ID);    //pouze objednávky cloud klienta
                }
                if (mq.Prefix == "p28" || mq.Prefix == "j02")
                {
                    AQ(ref lis, "(a.p28ID=@p28id_my OR a.j02ID_Owner IN (select j02ID FROM j02Person WHERE p28ID=@p28id_my))", "p28id_my", ru.p28ID);
                }
                if (mq.Prefix == "p11" || mq.Prefix == "p12")
                {
                    AQ(ref lis, "a.p21ID IN (SELECT p21ID FROM p21License WHERE p28ID = @p28id_my)", "p28id_my", ru.p28ID);    //pouze produkty v licenci klienta
                }
                if (mq.Prefix == "p26" || mq.Prefix == "p21")
                {
                    AQ(ref lis, "a.p28ID = @p28id", "p28id", ru.p28ID);    //pouze licence a stroje klienta
                }
                if (mq.Prefix == "p25")
                {
                    AQ(ref lis, "a.p25ID IN (select p25ID FROM p26Msz WHERE p28ID=@p28id)", "p28id", ru.p28ID);    //pouze typy zařízení za klientovi stroje
                }
                if (mq.Prefix == "p27")
                {
                    AQ(ref lis, "a.p27ID IN (select xa.p27ID FROM p29MszUnitBinding xa INNER JOIN p26Msz xb ON xa.p26ID=xb.p26ID WHERE xb.p28ID=@p28id_my)", "p28id_my", ru.p28ID);    //pouze klientovi stroje
                }
                if (mq.Prefix == "j04")
                {
                    AQ(ref lis, "a.j04IsClientRole=1", "", null); //pouze klientské role
                }
                if (mq.Prefix == "p19" || mq.Prefix == "p20")     //klientský materiál nebo měrné jednotky
                {
                    AQ(ref lis, "(a.p28ID IS NULL OR a.p28ID=@p28id)", "p28id", ru.p28ID);
                }
            }



            if (String.IsNullOrEmpty(mq.SearchString) == false && mq.SearchString.Length > 1)
            {
                if (mq.Prefix == "p28")
                {
                    AQ(ref lis, "(a.p28Name LIKE '%'+@expr+'%' OR a.p28ShortName LIKE '%'+@expr+'%' OR a.p28RegID LIKE '%'+@expr+'%' OR a.p28VatID LIKE '%'+@expr+'%' OR a.p28Code LIKE '%'+@expr+'%' OR a.p28ID IN (select p28ID FROM j02Person WHERE p28ID IS NOT NULL AND j02LastName like '%'+@expr+'%'))", "expr", mq.SearchString);
                }
                if (mq.Prefix == "j02")
                {
                    AQ(ref lis, "(a.j02LastName LIKE '%'+@expr+'%' OR a.j02FirstName LIKE '%'+@expr+'%' OR a.j02Email LIKE '%'+@expr+'%' OR p28.p28Name LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
                if (mq.Prefix == "p51")
                {
                    AQ(ref lis, "(a.p51Name LIKE '%'+@expr+'%' OR a.p51Code LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
                if (mq.Prefix == "p52")
                {
                    AQ(ref lis, "a.p52ID IN (select xa.p52ID FROM p52OrderItem xa INNER JOIN p51Order xb ON xa.p51ID=xb.p51ID INNER JOIN p11ClientProduct xc ON xa.p11ID=xc.p11ID LEFT OUTER JOIN p28Company xd ON xb.p28ID=xd.p28ID WHERE xb.p51Name LIKE '%'+@expr+'%' OR xc.p11Name LIKE '%'+@expr+'%' OR xd.p28Name LIKE '%'+@expr+'%' OR xb.p51Code LIKE '%'+@expr+'%' OR xc.p11Code LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
                if (mq.Prefix == "p10")
                {
                    AQ(ref lis, "(a.p10Name LIKE '%'+@expr+'%' OR a.p10Code LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
                if (mq.Prefix == "p13")
                {
                    AQ(ref lis, "(a.p13Name LIKE '%'+@expr+'%' OR a.p13Code LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
                if (mq.Prefix == "o23")
                {
                    AQ(ref lis, "(a.o23Name LIKE '%'+@expr+'%' OR a.o23Code LIKE '%'+@expr+'%' OR a.o23Memo LIKE '%'+@expr+'%')", "expr", mq.SearchString);
                }
            }


            var ret = new DL.FinalSqlCommand();

            if (lis.Count > 0)
            {
                ret.Parameters = new Dapper.DynamicParameters();
                if (bolPrepareParam4DT)
                {
                    ret.Parameters4DT = new List <DL.Param4DT>();
                }
                foreach (var c in lis.Where(p => String.IsNullOrEmpty(p.ParName) == false))
                {
                    ret.Parameters.Add(c.ParName, c.ParValue);
                    if (bolPrepareParam4DT)
                    {
                        ret.Parameters4DT.Add(new DL.Param4DT()
                        {
                            ParName = c.ParName, ParValue = c.ParValue
                        });
                    }
                }
                foreach (var c in lis.Where(p => String.IsNullOrEmpty(p.Par2Name) == false))
                {
                    ret.Parameters.Add(c.Par2Name, c.Par2Value);
                    if (bolPrepareParam4DT)
                    {
                        ret.Parameters4DT.Add(new DL.Param4DT()
                        {
                            ParName = c.Par2Name, ParValue = c.Par2Value
                        });
                    }
                }


                ret.SqlWhere = String.Join(" ", lis.Select(p => p.AndOrZleva + " " + p.BracketLeft + p.StringWhere + p.BracketRight)).Trim();    //složit závěrčnou podmínku
                //System.IO.File.WriteAllText("c:\\temp\\hovado"+mq.Prefix+".txt", ret.SqlWhere);

                ret.SqlWhere = String.Join(" ", lis.Select(p => p.AndOrZleva + " " + p.StringWhere)).Trim();    //složit závěrčnou podmínku
            }



            if (!string.IsNullOrEmpty(ret.SqlWhere))
            {
                strPrimarySql += " WHERE " + ret.SqlWhere;
            }
            if (!string.IsNullOrEmpty(mq.explicit_orderby))
            {
                strPrimarySql += " ORDER BY " + mq.explicit_orderby;
            }

            if (strPrimarySql.Contains("@gd1"))
            {   //view s napevno navrženou podmínkou časového filtru
                if (mq.global_d1 == null)
                {
                    mq.global_d1 = new DateTime(2000, 1, 1);
                }
                if (mq.global_d2 == null)
                {
                    mq.global_d2 = new DateTime(3000, 1, 1);
                }

                if (ret.Parameters == null)
                {
                    ret.Parameters = new Dapper.DynamicParameters();
                    if (bolPrepareParam4DT)
                    {
                        ret.Parameters4DT = new List <DL.Param4DT>();
                    }
                }
                ret.Parameters.Add("gd1", mq.global_d1, System.Data.DbType.DateTime);
                if (bolPrepareParam4DT)
                {
                    ret.Parameters4DT.Add(new DL.Param4DT()
                    {
                        ParName = "gd1", ParValue = mq.global_d1
                    });
                }
                ret.Parameters.Add("gd2", mq.global_d2, System.Data.DbType.DateTime);
                if (bolPrepareParam4DT)
                {
                    ret.Parameters4DT.Add(new DL.Param4DT()
                    {
                        ParName = "gd2", ParValue = mq.global_d2
                    });
                }
            }

            ret.FinalSql = strPrimarySql;
            return(ret);
        }
Exemplo n.º 5
0
 public IEnumerable <BO.p14MasterOper> GetList(BO.myQuery mq)
 {
     mq.explicit_orderby = "a.p14RowNum";
     DL.FinalSqlCommand fq = DL.basQuery.ParseFinalSql(GetSQL1(), mq, _mother.CurrentUser);
     return(_db.GetList <BO.p14MasterOper>(fq.FinalSql, fq.Parameters));
 }