コード例 #1
0
        public void GetEvpoplData(decimal popl, string per,
                                  ref string expfin,
                                  ref decimal procsankce,
                                  ref string typsankce,
                                  ref decimal pevnacastka,
                                  ref decimal nasobek,
                                  ref string pernas,
                                  ref string vystup,
                                  ref int porvs)
        {
            XPQuery <C_EVPOPL> evpopls = sesna.Query <C_EVPOPL>();

            CriteriaOperator criteria = CriteriaOperator.Parse("CompoundKey1.EVPOPL_KOD.NAZPOPL_POPLATEK = ? " +
                                                               "and CompoundKey1.EVPOPL_PER.PERIODA_PERIODA = ?",
                                                               popl, per);
            C_EVPOPL ep = sesna.FindObject <C_EVPOPL>(criteria); //pokud je v cache s temito criterii, vraci objekt z cache

            ep.Reload();

            var list = from a in evpopls
                       where (a.EVPOPL_FROMDATE <= DateTime.Now && //LINQ prevede DateTime.Now pro MSSQL na getdate()
                              (a.EVPOPL_TODATE >= DateTime.Now || a.EVPOPL_TODATE != null)) &&
                       a.CompoundKey1.EVPOPL_KOD.NAZPOPL_POPLATEK == popl &&
                       a.CompoundKey1.EVPOPL_PER.PERIODA_PERIODA == per
                       select a;

            expfin = string.Empty;
            if (list.Count() > 0)
            {
                //prvni radek
                expfin      = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_EXPFIN;
                procsankce  = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_PROCSANKCE;
                procsankce  = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_PROCSANKCE;
                typsankce   = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_TYPSANKCE;
                pevnacastka = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_PEVNACASTKA;
                nasobek     = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_NASOBEK;
                pernas      = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_PERNAS;
                vystup      = ((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).EVPOPL_FORMTISK;
                porvs       = Convert.ToInt32(((C_EVPOPL)(list.AsEnumerable().ElementAt(0))).CompoundKey1.EVPOPL_KOD.NAZPOPL_PORVS);
            }
        }
コード例 #2
0
        internal DateTime GetDatumSplatnosti(DateTime vystaveno, C_EVPOPL evp, short porPer)
        {
            DateTime obdMez = vystaveno;

            int       pocDni = (int)evp.EVPOPL_POCDNU;
            C_PERIODA per    = null;
            DBValue   dbv    = null;

            switch (evp.EVPOPL_TERMPLAC.TERMPLAC_TERMPLAC)
            {
            case "Z":  //zaèátek období
            case "K":  //zacatek nebo konec období
                per = sesna.GetObjectByKey <C_PERIODA>(evp.CompoundKey1.EVPOPL_PER.PERIODA_NAZEV);
                C_KALENDAR.CompoundKey1Struct key = new C_KALENDAR.CompoundKey1Struct();
                key.KALENDAR_PERIODA.PERIODA_PERIODA = evp.CompoundKey1.EVPOPL_PER.PERIODA_NAZEV;
                key.KALENDAR_PORPER = porPer;
                obdMez = (sesna.GetObjectByKey <C_KALENDAR>(key)).KALENDAR_FROMDATE;
                break;

            case "P":                             //po vystavení poplatku
                dbv    = DBValue.Instance(sesna); //new DBValue(sesna);
                obdMez = dbv.DBSysDate;
                break;

            case "R":                             //zaèátek akt. roku
                dbv    = DBValue.Instance(sesna); //new DBValue(sesna);
                obdMez = new DateTime(dbv.DBSysDate.Year, 1, 1);
                break;

            case "E":                             //konec akt. roku
                dbv    = DBValue.Instance(sesna); //new DBValue(sesna);
                obdMez = new DateTime(dbv.DBSysDate.Year, 12, 31);
                break;
            }

            return(obdMez.AddDays(pocDni));
        }