Obsah
Bezhotovostní platební převody čtenářů
Evergreen počítá s možností online plateb kartou nebo PayPal apod., která však vyžadují náročnější technická řešení. Níže popsané postup pro možnost evidence bezhotovostních platebních transakcí byl vytvořen pro potřeby Knihovny Jabok v rámci projektu VIKS 2014. Protože nevyžaduje složitá technická řešení, ale zároveň vyžaduje manuální zásah knihovníka pro dokončení evidence platby v Evergreenu, je vhodný spíše pro menší knihovny. Řešení bylo navrženo pro verzi Evergreenu 2.6, je však univerzálně použitelné i pro jiné verze, které využívají TPAC (tj. současnou verzi online katalogu vytvořenou pomocí nástroje Template Toolkit).
Pro využívání uvedeného postupu je nutné vyřešit následující oblasti:
Dávkový program pro automatickou extrakci údajů o platbách z bankovních výpisů
K identifikac plateb čtenářů je využíván variabilní symbol. Ten je tvořen volitelným pětimístným předčíslím (zde je pro zjednodušení použito předčíslí 11111) pro identifikaci platby čtenáře mezi ostatními platbami organizace a pětimístným číslem tvořeným ID čtenáře v databázi Evergreenu (user.id), které identifikuje konkrétního čtenáře. Na základě předčíslí variabilního symbolu jsou z bankovního výpisu extrahovány údaje o platbách čtenářů a jsou uloženy do souboru, který je odeslán knihovně k dalšímu zpracování. Pro případnou potřebu kontroly je po čtenáři při zadání bankovního příkazu požadován nejen variabilní symbol, ale také uvádění jména a příjmení v poznámce k platbě.
V případě Knihovny Jabok program zpracovává textový výpis posílaný e-mailem z Reifeisenbank, který zpracovává výpisy na základě variabilního symbolu indentifikujícího platby knihovny.
Poznámka: Pro jiné typy výpisů (např. výpisy ve formátu ABO apod.) je nutné dávkový program upravit.
Zobrazení údajů pro bezhotovostní platby ve čtenářském kontě v online katalogu.
Informace pro čtenáře o bezhotovostních platbách jsou čtenářům sděleny v přehledu údajů v jejich čtenářském kontě na kartě „Osobní údaje“. Pro zobrazení těchto informací je nutné upravit šablonu /openil/var/custom-templates/opac/myopac/prefs.tt2 (namísto „custom-template“ doplňte jméno adresáře, kde jsou uloženy customizované šablony knihovny, viz též dokumentaci k úpravám TPACu http://docs.evergreen-ils.org/2.6/_how_to_override_templates.html)
V souboru prefs.tt2 vložte do tabulky s názvem „Account preferences“ tento kód - tím přidáte do přehledu účtu řádek tabulky, v němž se čtenáři vygenerují informace o bezhotovostních platbách (namísto řetšzce XXXX uveďte číslo účtu a název banky, namísto 11111 uveďte požadované předčíslí variabilního symbolu):
<tr> <td class='color_4 light_border'>Informace k bezhotovostním platbám</td> <td class='light_border'> <i> Číslo účtu: <br /></i> <b>XXXX </b> XXXX <br /> </td> <td> <i> Do pole "variabilní symbol" uveďte: </i> [% USE varsymbol = format('11111%05d') -%] <b> [% varsymbol(ctx.user.id) | html %] </b><br /> <i>Do pole "poznámka" (příp. "popis platby" apod.) uveďte:</i> <b> [% l( HUMAN_NAME_FORMAT, ctx.user.first_given_name, ctx.user.family_name, ) | html %] </b><br /> <br /> Upozornění: Platby za zpozdné prosím posílejte až po vrácení všech dokumentů s uplynulou výpůjční lhůtou! </td> </tr>
Údaj potřebné pro platební převod se čtenáři zobrazí po přihlášení do čtenářského konta v přehledu osobních údajů čtenáře (viz obrázek).
Evidence platby ve čtenářském kontě
Protože v Evergreenu se s platebními převody s účtů primárně nepočítá, je nutné využít jiný typ platby. Jako vhodný typ se jeví např. platby „šekem“. Vzhledem k tomu, že se v českých podmínkách tento typ plateb víceméně nepoužívá, je možné upravit lokalizační šablonu tak, aby se místo typu „šekem“ zobrazoval typ: „platební převod“.
Úprava rozhraní Evergreenu:
Na servertu Evergreenu vytvořte kopii souboru /openils/var/web/opac/locale/cs-CZ/lang.dtd (pojmenujte ji např. lang.dtd-orig apod.). V souboru lang.dtd poté změňte překlady modulu pro platby šekem náhradou níže uvedených řetězců:
<!ENTITY staff.patron.bill_check_info.title "Informace o šeku"> nahraďte: <!ENTITY staff.patron.bill_check_info.title "Informace platebním převodu"> <!ENTITY staff.patron.bill_check_info.check_info.label "Informace o šeku"> nahraďte: <!ENTITY staff.patron.bill_check_info.check_info.label "Informace o platebním převodu">
<!ENTITY staff.patron.bill_check_info.check_number.value "Číslo šeku"> nahraďte: <!ENTITY staff.patron.bill_check_info.check_number.value "Číslo "> <!ENTITY staff.patron.bills_overlay.check.label "Šekem"> Nahraďte: <!ENTITY staff.patron.bills_overlay.check.label "Převodem">
Po těchto úpravách uložte soubor lang.dtd a restartujte apache (vyžaduje příslušná práva administrátora serveru)
Upozornění:
Je nutné mít na paměti, že tyto nastavené změny se týkají pouze českého překladu. V systému zůstává typ platby stále jako platba šekem, tj. např. při vytváření statistických sestav, tiskových výstupů apod. je nutné použít databázová pole nebo označení pro platbu šekem. Také v rozhraní pro platby ve sloupci „Způsob platby“ se i v českém rozhraní Evergreenu zobrazuje „check_payment“. „Check payment“ zůstává zobrazeno i při volbě anglické (či dalších) lokalizací.
Dokončení evidence platby
Postup viz Evidence bezhotovostních plateb.
Tisk / zaslání dokladu o platbě ve čtenářskem kontě v online katalogu
Tisk dokladu o platbě standardně probíhá při platbě (tiskové výstupy se nastavují v Editoru šabon výpisu a potvrzení ve služebním klientu Evergreenu, (viz též Tiskové šablony)
Aby si také čtenář sám mohl po přihlášení do čtenářského konta vytisknout potvrzení o proběhlých platbách, je nutné nastavit šablony pro jejich tisk v v administrátorském rozhraní služebního klienta Evergreenu: Admin → Lokální administrace → Oznámení /spouštěče (triggery) událostí.
- V seznamu šablon najděte šablonu pro tisk potvrzení „money.payment_receipt.print“, označte jí pomocí zaškrtávacího pole vlevo a klikněte na tlačítko „Klonovat vybranou šablonu“.
- Otevře se editační režim šablony. Upravte název šablony (např. „money.payment_receipt.print-nove“), zaškrtně pole „aktivní“ a do části „template“ vložte níže uvedený kód. Namísto řetězců začínajících a končících třemi hvězdičkami doplňte údaje o své knihovně, případně upravte další části šablony podle potřeby.
- Poté šablonu uložte.
- Při ukládání potvrďte ve vyskakovacím okně, že chcete uložit také kontext šablony.
- V původní šabloně nastavte v zaškrtávacím poli šablonu jako neaktivní a uložte ji (pokud byste nechali „aktivní“ obě šablony, tisk potvrzení by nefungoval).
Stejny postup aplikujte na šablonu „money.payment_receipt.email“ pro zasílání potvrzení e-mailem.
Tiskový výstup potvrzení
Do části „template“ vložte tento kód:
***Nazev a adresa knihovny*** <hr/><br/> DOKLAD O PLATBE <br/> [%- USE date(format = '%a %d-%b-%Y', locale = 'cz_CZ') -%][%- SET user = target.0.xact.usr -%] <div style="li { padding: 8px; margin 5px; }"> Datum vytisteni dokladu: [% date.format(date.now, '%d %b %y %H:%M:%S' , 'cs_CZ') %] <br/> Jmeno ctenare: [% user.first_given_name %] [% user.family_name %] <br/> </div> <br/> <div> <ul> [% SET xact_mp_hash = {} %] [% FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions %] [% SET xact_id = mp.xact.id %] [% IF ! xact_mp_hash.defined( xact_id ) %][% xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } %][% END %] [% xact_mp_hash.$xact_id.payments.push(mp) %] [% END %] [% FOR xact_id IN xact_mp_hash.keys.sort %] [% SET xact = xact_mp_hash.$xact_id.xact %] <li><u> Poplatek c.: [% xact_id %]</u><br/> [% IF xact.circulation %] Nazev titulu: [% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] [% ELSE %] Typ poplatku: Poplatky za zbozi a sluzby [% END %] <br/> [% SET mb_type_hash = {} %] [% FOR mb IN xact.billings %][%# Group billings by their btype %] [% IF mb.voided == 'f' %] [% SET mb_type = mb.btype.id %] [% IF ! mb_type_hash.defined( mb_type ) %][% mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } %][% END %] [% IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) %][% mb_type_hash.$mb_type.first_ts = mb.billing_ts %][% END %] [% mb_type_hash.$mb_type.last_ts = mb.billing_ts %] [% mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount %] [% mb_type_hash.$mb_type.billings.push( mb ) %] [% END %] [% END %] [% FOR mb_type IN mb_type_hash.keys.sort %] [% IF mb_type == 1 %][%# Consolidated view of overdue billings %] [% mb_type_hash.$mb_type.sum %] Kc - Platba za [% mb_type_hash.$mb_type.billings.0.btype.name %] <br/> Vznik poplatku: [% mb_type_hash.$mb_type.first_ts | replace('T', ' ') FILTER truncate(17, ',') %] ukonceni: [% mb_type_hash.$mb_type.last_ts | replace('T', ' ') FILTER truncate(17, ' ') %]<br/> [% ELSE %][%# all other billings show individually %] [% FOR mb IN mb_type_hash.$mb_type.billings %] [% mb.amount %] Kc za [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %] [% END %] [% END %]</li> [% END %] <br/> <dl> <dd> <u>Informace o platbe: </u> <br/> [% FOR mp IN xact_mp_hash.$xact_id.payments %] Interni cislo platby: [% mp.id %]<br/> Vyse platby: [% mp.amount %] Kc <br/> Zpusob platby: [% SWITCH mp.payment_type -%] [% CASE "cash_payment" %]Hotovost [% CASE "check_payment" %]Bezhotovostnim prevodem [% CASE "credit_card_payment" %]kartou ( [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%] [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] [% cc_chunks.last -%] exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%] ) [% CASE "credit_payment" %]Ze zalohy [% CASE "forgive_payment" %]Platba prominuta [% CASE "goods_payment" %]Zbozim/vecnou nahradou [% CASE "work_payment" %]Praci [%- END %] <br/> Datum provedeni platby: [% mp.payment_ts | replace('T', ' ') FILTER truncate(17, ' ') %] [% mp.note %] </dd> </dl> [% END %] [% END %] </div> <br/> ***Informace o DPH (napr. "ceny jsou vcetne DPH" apod.)*** <hr/> ***Fakturacni adresa, ICO, DIC ***
E-mailový výstup potvrzení
Do části „template“ vložte tento kód:
[%- USE date -%] [%- SET user = target.0.xact.usr -%] To: [%- params.recipient_email || user.email %] From: [%- params.sender_email || default_sender %] Subject: Potvrzeni o platbe ***Adresa knihovny*** ------------------ DOKLAD O PLATBE [% date.format -%] [%- SET xact_mp_hash = {} -%] [%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%] [%- SET xact_id = mp.xact.id -%] [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%] [%- xact_mp_hash.$xact_id.payments.push(mp) -%] [%- END -%] [%- FOR xact_id IN xact_mp_hash.keys.sort -%] [%- SET xact = xact_mp_hash.$xact_id.xact %] Poplatek c.: [% xact_id %] [% IF xact.circulation %] Nazev titulu: [% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] [% ELSE %]Typ poplatku: Poplatky za zbozi a sluzby [% END %] [%- SET mb_type_hash = {} -%] [%- FOR mb IN xact.billings %][%# Group billings by their btype -%] [%- IF mb.voided == 'f' -%] [%- SET mb_type = mb.btype.id -%] [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%] [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%] [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%] [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%] [%- mb_type_hash.$mb_type.billings.push( mb ) -%] [%- END -%] [%- END -%] [%- FOR mb_type IN mb_type_hash.keys.sort -%] [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%] [% mb_type_hash.$mb_type.sum %] Kc - platba za [% mb_type_hash.$mb_type.billings.0.btype.name %] Vznik poplatku: [% mb_type_hash.$mb_type.first_ts | replace('T', ' ') FILTER truncate(17, ',') %] ukonceni: [% mb_type_hash.$mb_type.last_ts | replace('T', ' ') FILTER truncate(17, ',') %] [%- ELSE -%][%# all other billings show individually %] [% FOR mb IN mb_type_hash.$mb_type.billings %] Nauctovano: [% mb.amount %] za [% mb.btype.name %] dne [% mb.billing_ts | replace('T', ' ') FILTER truncate(17, ' ') %] [% mb.note %] [% END %] [% END %] [% END %] Informace o platbe: [% FOR mp IN xact_mp_hash.$xact_id.payments %] Interni cislo platby: [% mp.id %] Vyse platby: [% mp.amount %] Kc Zpusob platby: [% SWITCH mp.payment_type -%] [% CASE "cash_payment" %]Hotovost [% CASE "check_payment" %]Prevodem [% CASE "credit_card_payment" %]Kartou ( [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%] [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] [% cc_chunks.last -%] exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%] ) [% CASE "credit_payment" %]Ze zalohy [% CASE "forgive_payment" %]Platba prominuta [% CASE "goods_payment" %]Vecnou nahradou [% CASE "work_payment" %]Praci [%- END %] Datum provedeni platby [% mp.payment_ts | replace('T', ' ') FILTER truncate(17, ',') %] [% mp.note %] [% END %] [% END %] ***Informace o platbe DPH (napr. ceny jsou uvedeny vcetne DPH).*** ---------------------------- ***Fakturacni adresa*** ***ICO, DIC***