Příklady podmínek
Obecné podmínky na dílo, svazek, čtenáře
Popis podmínky | Podmínka FOX/SQL | Podmínka v TQL - Tritius Query Language od verze 6.1.0 | PodmínkaSQL | Automatický převod |
---|---|---|---|---|
Titulová podmínka na druh dokumentu kromě AV Media | druhdoku<>'AV' | workTypeId <> -7 | ||
tsign like 'TK%' or tsign like 'DH%' | workLocMark STARTS IN ('TK', 'DH') | |||
druhdoku='AV' and tsign not like 'DVDB%' | workTypeId = -7 AND workLocMark NOT STARTS 'DVDB' | |||
Svazková podmínka na kategorii (kategorie<>N) | kategorie<>'N' | itemBorrowCategoryExternalId IS NULL OR itemBorrowCategoryExternalId <> 'N' | Ano | |
Svazková kategorie je | inlist(kategorie,'N','L') | itemBorrowCategoryId IN (4, 1) | ||
Čtenářská podmínka (kategorie=I) | userCategoryCode = 'I' nebo userCategoryId IN (201, 310, 311, 308) | |||
Svazková podmínka (lokace in) | itemLocationExternalId IN ('501H', '501H1', '501H2') | i.location in (1,4,6) | ||
itemLocationId IN (40, 29, 43, 39, 42, 1) | ||||
Svazková podmínka na signaturu | sign in ('M PK','IS','BI','PE','NA','KA','RE','EK','PK','OS') | itemLocMarkValueShow IN ('M PK', 'IS', 'BI', 'PE', 'NA', 'KA', 'RE', 'EK', 'PK', 'OS') | ||
Titulová podmínka druh dokumentu (v tomto případě MVS | itemType = 'ILS' | |||
Poznámka začíná textem | poznamka='Novink' | itemNote STARTS 'Novink' | ||
Podmínka prezenčnosti posledního čísla periodika | workTypeId = -8 Poslední čísla periodik: 1 | |||
Čtenářská podmínka (do 15 let) | DekodVek(rcislo)<15 | userAge < 15 | Ano | |
Do 27 let a profese student | userAge < 27 AND userProfessionId = -8 | |||
Signatura začíná | itemLocMarkValueShow STARTS 'PK' | lm.value_show like "PK%" | ||
Povolání důchodce | userProfessionId = -2 | |||
Povolání Důchodce, Student nebo V domácnosti | inlist(prof,'d','s','V') | userProfessionId IN (-2, -8, -11) | ||
Škola (id 3) | skola='b' | userSchoolId = 3 | ||
Domovské oddělení čtenáře je (kde="D"); | userDefaultDepartmentShortcut = 'D' | |||
Signatura je (sign in ('PK','RR','S','X')
| itemLocMarkValueShow STARTS IN ('PK', 'RR', 'S', 'X') | |||
Kategorie X, M nebo ccislo > 9999799 | inlist(kategorie,'X','M') or ccislo>9999799 | userCategoryCode IN ('X', 'M') OR userReaderNumberValue > 9999799 | Ano | |
Kategorie I, N | inlist(kategorie,'I','N') | userCategoryCode IN ('I', 'N') | Ano | |
DekodVek(rcislo)<15 | userAge < 15 | Ano | ||
DekodVek(rcislo)<16 | userAge < 16 | Ano | ||
prof='s' | userProfessionId = -8 | Ano | ||
prof='d' | userProfessionId = -2 | Ano | ||
druhdoku='AV' | workTypeId = -7 | Ano | ||
druhdoku='PE' | workTypeId = -8 | Ano | ||
druhdoku='VS' | itemType = 'ILS' | Ano | ||
druhdoku<>'AV' and druhdoku<>'VS' | workTypeId <> -7 AND itemType <> 'ILS' | Ano | ||
sign like 'BIS%' | itemLocMarkValueShow STARTS 'BIS' | Ano | ||
sign in ('BIS') | itemLocMarkValueShow = 'BIS' | |||
lokace in ('BIS','PK') | itemLocationExternalId IN ('BIS', 'PK') | Ano | ||
lokace not like '%m%' | itemLocationCode NOT CONTAINS 'm' | |||
sign like '%H' | itemLocMarkValueShow ENDS 'H' | |||
kategorie='M' | userCategoryCode = 'M' | Ano | ||
kategore <> M | userCategoryCode IS NULL OR userCategoryCode <> 'M' | |||
lokace<>'HO' and kategorie<>'N' | itemLocationCode <> 'HO' AND (itemBorrowCategoryExternalId IS NULL OR itemBorrowCategoryExternalId <> 'N') | |||
Čtenář starší 70 let | DekodVek(rcislo)>=70 | userAge >= 70 | ||
Podmínka kategorie operací pro AV média | druhdoku='AV' and nosic='CD' | workTypeId = -7 AND workMedium STARTS 'CD' | Ano | |
Podmínka webové definice | S.kategorie<>'*' and S.lokace not in ('VF') | itemType <> 'ILS' AND itemLibraryId = 1 AND itemLocationId <> 3 AND (itemBorrowCategoryId IS NULL OR itemBorrowCategoryId <> 3) | ||
Podmínka prohledávaných oblastí | S.lokace in ('DOSP') | itemLocationCode = 'DOSP' | ||
-- dtto -- | S.lokace='M' | itemLocationCode = 'M' | ||
-- dtto -- | S.lokace='HUD' | itemLocationCode = 'HUD' | ||
cena>=700 | itemPrice >= 700.0 | |||
Poslední návštěva pod čtenáře. Nastavení - Vlastní informace | ||||
Registrace do Nastavení - Vlastní informace | ||||
Cena svazku je větší než 500 | itemPrice > 500 | |||
tematika = | tematika='6' | itemThematicGroupId IS NULL OR itemThematicGroupId = 3 |
i.thematic_group in (-1)|
id titulu = | workId = 602439 | |||
Nevyplněná adresa čtenáře s vyloučenými kategoriemi a čtenářské číslo menší než 9999000 | (tulice=' ' or tmesto=' ' or tpsc=' ') and !inlist(kategorie,'h','M','X') and ccislo < 9999000 | (userStreetNumberPermanent = '' OR userCityPermanent = '' OR userPostNumberPermanent = '') AND (userCategoryCode IS NULL OR userCategoryCode NOT IN ('h', 'M', 'X')) AND userReaderNumberValue < 9999000 | ||
Nevyplněná občanka u čtenářů starších 15 let s vyloučenými kategoriemi a čtenářské číslo menší než 9999000 | obcanka=' ' and DekodVek(rcislo)>=15 and !inlist(kategorie,'M','h','X') and ccislo < 9999000 | userIdentityCardNumber IS NULL AND userAge >= 15 AND (userCategoryCode IS NULL OR userCategoryCode NOT IN ('h', 'M', 'X')) AND userReaderNumberValue < 9999000 | ||
Podmínka na aktuální datum a čas. 2.3.2020 00:00:00 - 6.3.2020 23:59:59 | ||||
Podmínka pro anonymní vracení, kdy svazek není půjčený | userId = -147 | |||
Podmínka pro více čtenářských čísel | userReaderNumberValue IN (9999967, 7980, 7981, 7982, 7983, 7984) | |||
Pravidlo registrací na určité datum, rozsah datumů nebo rozsah časů | currentDate = '14.02.2022' OR currentDate BETWEEN ('01.03.2022', '31.03.2022') OR currentTime BETWEEN ('16:00', '17:00') | |||
Svazek je starší než dva roky | itemDateCreated <= nowAddMonths(-24) | |||
Čtenář má 2 a více e-knih (výpůjčka 3. a další e-knihy) ze sklízeného zdroje ID -3, -4 za posledních 31 dní. | // Titulová podmínka // Čtenářská podmínka | |||
Čtenář má 2 a více e-knih (výpůjčka 3. a další e-knihy) ze sklízeného zdroje ID -3 a -4 za aktuální kalendářní měsíc. | // Titulová podmínka // Čtenářská podmínka | |||
Každá výpůjčka e-knihy ze sklízeného zdroje ID -3 a -4 za posledních 31 dní. | // Titulová podmínka // Čtenářská podmínka | |||
Čtenář má dohromady 2 a více e-knih nebo audioknih (výpůjčka 3. a dalšího e-dokumentu) ze sklízeného zdroje ID -6 za posledních 31 dní. | // Titulová podmínka // Čtenářská podmínka | |||
Kontrola abecedy na regálech v revizi | // V revizi je potřeba povolit použítí regálů // Pro každé písmeno abecedy je potřeba vytvořit vlastní regál // Titulová podmínka workAuthorShow STARTS 'A' OR (workAuthorShow = '' AND workTitleShow STARTS 'A') | |||
Dílo/svazek má přiřazený alespoň jeden z uvedených štítků (zadává se ID štítku) | // Titulová podmínka // Svazková podmínka | |||
Dílo/svazek má přiřazené všechny uvedené štítky (zadává se ID štítku) | // Titulová podmínka // Svazková podmínka |
SQL podmínky (na díla, svazky, ...)
- Používají se u některých definic.
- Např. prohledávané oblasti, webové definice, revize, ...
- Takto zadané podmínky musí jít transformovat:
- Do ujormu - používá používá jiné aliasy než se zadávají v podmínkách.
- Do javy - svazky/díla se načítají hromadně a pak se teprve vyhodnocuje, zda patří/nepatří k dané definici (revizi, oblasti apod.).
- SQL konstrukce tedy nejsou podporovány automaticky, ale musí se pro ně podpora programovat → ne každé SQL jde vždy použít!
Podmínky na čas
- Může být potřeba omezit např. revizi jen na nové/staré svazky - do svazková podmínka omezená pod data vytvoření.
- Příklad: i.date_created < '2015-06-15'
- Časové podmínky podporují tyto operátory:
- =, <. <=, >, >=.
- Jdou podporovány následující formáty datumu:
- '2020-03-26'
- '2020-03-26 14:50:00'
- '2020-03-26 14:50:00.000'
- Pokud bude použit jiný operátor nebo formát datumu, nebude SQL podmínka validní, popř. nemusí fungovat správně!
Pravidla akcí - Změny před/po akci
cz.effectiva.tritius.server.ao.contexts.ServiceContext context = cz.effectiva.tritius.utils.UserContext.createCurrentContext(now); cz.effectiva.tritius.server.usecase.registration.CheckRegistrationRequest request = cz.effectiva.tritius.server.usecase.registration.CheckRegistrationRequest.lastEndingActiveOf(userResult.getUser(), department, context); return serviceProvider.getRegistrationService().checkRegistration(request).isHasActiveRegistration();|-
cz.effectiva.tritius.server.ao.contexts.ServiceContext context = cz.effectiva.tritius.utils.UserContext.createCurrentContext(now); department = serviceProvider.getDepartmentService().load(123L); cz.effectiva.tritius.server.usecase.registration.CheckRegistrationRequest request = cz.effectiva.tritius.server.usecase.registration.CheckRegistrationRequest.lastEndingActiveOf(userResult.getUser(), department, context); return serviceProvider.getRegistrationService().checkRegistration(request).isHasActiveRegistration();|- Automatické přepůjčení na karanténu |
Dispečink internetu
Popis příkazu | Podmínka v TQL - Tritius Query Language od verze 6.1.0 | Java podmínka | Poznámka |
---|---|---|---|
Podmínka na konkrétního uživatele | userReaderNumberValue= 644 | return (userResult != null && userResult.getUser() != null && userResult.getUser().getReaderNumber() !=null) ? userResult.getUser().getReaderNumber().getValue().equals(644L) : false; |
Vlastní informace
Používá se FreeMarker. Viz Google a psaní podmínek.
Popis | Kód | Náhled |
---|---|---|
Čtenářské číslo; - Jméno čtenáře Datum narození; Datum poslední návštěvy; - Počet čekajících rezervací a odložení; - Text z kolonky POZOR | <#if container.getBirthdate()??> ${container.getInfoLastVisit()} <#if container.getWaitingRequestsCount()!=0> <#if container.hasCautionNote()> | |
Čtenářské číslo; - Jméno čtenáře Věk čtenáře; @ pokud má čtenář vyplněný email; Datum poslední návštěvy; Datum konce registrace | <#if container.getAgeFormated()??> Věk: ${container.getAgeFormated()} </#if> ${container.getInfoMailLastVisitEndingRegistration()} | |
Čtenářské číslo; - Jméno čtenáře Počet čekajících rezervací a odložení; Datum poslední návštěvy; Datum konce registrace | <#if container.getWaitingRequestsCount()!=0> ${container.getInfoMailLastVisitEndingRegistration()} | |
Čtenářské číslo; - Jméno čtenáře @ pokud má čtenář vyplněný email; Datum poslední návštěvy; Datum konce registrace (zeleně pokud platí, červeně pokud již skončila) | ${container.getInfoMailLastVisit()} <#if container.isRegistrationExpired() && container.loadLastEndingRegistrationCharge()??> <font color="red">${container.loadLastEndingRegistrationCharge()?string("dd.MM.yyyy")}</font> </#if> <#if container.isRegistrationExpired()==false && container.loadLastEndingRegistrationCharge()??> <font color="green">${container.loadLastEndingRegistrationCharge()?string("dd.MM.yyyy")}</font> </#if> | |
Čtenářské číslo; - Jméno čtenáře @ pokud má čtenář vyplněný email; Datum poslední návštěvy; Datum konce registrace (zeleně pokud platí, červeně pokud během 31 dní vyprší) | ${container.getInfoMailLastVisit()} <#if container.getWaitingRequestsCount()!=0> <#if container.loadLastEndingRegistrationCharge()?? > | |
Věk obarvený podle let. Nad 15 (a zároveň) červený, pod 15 modrý. | <#if container.getAgeFormated()??> <#if container.getAgeFormated()?number gte 15> Věk: <font color="red"> ${container.getAgeFormated()}</font> <#else> Věk: <font color="blue"> ${container.getAgeFormated()}</font> </#if> </#if> | |
Rozpis počtu čekajících objednávek čtenáře. Jednotlivé typy objednávek se oddělují lomenem. Odložení z poličky a objednávky ze skladu sčítá dohromady. Daný typ se zobrazuje pouze pokud pro daný typ existuje alespoň jedna čekající objednávka.
| ${container.getInfoMailLastVisit()} <#if container.getWaitingRequestsCount() != 0> <#if container.getWaitingReservationCount() != 0> <#if (container.getWaitingShelfRetrievalRequestsDepartmentCount() != 0 || <#if container.getInsertedBoxRetrievalRequestsDepartmentCount() != 0> <#if container.getWaitingIlsDepartmentCount() != 0> </font> | |
Zobrazuje upozornění, že má čtenář dnes narozeniny nebo svátek. | <#if container.hasBirthday()> <#if container.hasNameDay()> | |
Výchozí stav ( mail, posl. návštěva, svátek, čekající rez./odl. ) + věk různobarevný podle hranice 15let
| ${container.getInfoMailLastVisit()} <#if container.hasNameDay()> <font color="red"> - ${container.translate("has_nameday_today")}.</font> </#if> <#if container.getWaitingRequestsCount()!=0> <font color="red"> - ${container.translate("Waiting_reservations/retrievals")} - ${container.getWaitingRequestsCount()}</font> </#if> <#if container.getAgeFormated()??> | |
Mail, posl. návštěva, končící registrace , povolání, vzdělání, škola, svátek a čekající rez./odl.
| ${container.getInfoMailLastVisitEndingRegistration()}
| |
Mail, posl. návštěva, vzdělání, povolání, svátek, čekající rez./odl.
| ${container.getInfoMailLastVisit()} <#if container.hasEducationLevel()> <font color="orange">${container.getEducationLevel()}</font> </#if> <#if container.hasProfession()> <font color="green">${container.getProfession()}</font> </#if> <#if container.hasNameDay()> <font color="red"> - ${container.translate("has_nameday_today")}.</font> </#if> <#if container.getWaitingRequestsCount()!=0> <font color="red"> - ${container.translate("Waiting_reservations/retrievals")} - ${container.getWaitingRequestsCount()}</font> </#if> |