Uživatelské nástroje

Nástroje pro tento web


vypujcni_protokol:bezhotovostni_platby

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
vypujcni_protokol:bezhotovostni_platby [2015/01/04 18:57] – [Tisk / zaslání dokladu o platbě ve čtenářskem kontě v online katalogu] ecevypujcni_protokol:bezhotovostni_platby [2017/01/18 15:43] (aktuální) – [Úprava rozhraní Evergreenu:] ece
Řádek 1: Řádek 1:
 +====== 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):
 +
 +<code>
 +
 +         <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&nbsp;uplynulou výpůjční lhůtou!
 +            </td>
 +            
 +       </tr> 
 +
 +</code>
 +
 +Ú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).
 +
 +{{:vypujcni_protokol:udaje_platby.jpg|}}
 +
 +
 +
 +===== 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 [[vypujcni_protokol:evidence_bezhotovostnich_plateb|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éž [[doplnky:tiskove_sablony|]])
 +
 +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:
 +
 +
 +<code>
 +
 +***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 ***
 +
 +</code> 
 +
 +==== E-mailový výstup potvrzení ====
 +
 +Do části //"template"// vložte tento kód:
 +
 +<code>
 +[%- 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***
 +
 +</code>