Manuál k programu Opravy a servis 3

	Tento dokument obsahuje popis některých dodatečných informací, které můžou být ku pomoci zejména administrátorům, programátorům a zkušenějším uživatelům. 

1. Konfigurační a datové soubory
	
Hodnoty uložené v konfiguračních souborech nastavujeme zásadně v rámci programu Opravy a servis. Ten zajistí správnost uložených hodnot. Přímý přístup použijeme jen ve speciálních případech.

servis.ini
- standardní ini soubor Windows, je možné ho v případě nutnosti editovat poznámkovým blokem. Tento soubor obsahuje i licenční informace.

schemams.sql
- textový soubor, otevřeme ho v poznámkovém bloku. Obsahuje schéma databáze. Toto schéma se využije v případě tvorby vlastních filtrů pomoci SQL dotazů, blíže viz soubor filtry.txt. 

filtry*.txt
- textový soubor, otevřeme ho v poznámkovém bloku. Obsahuje jednotlivé filtry dostupné v programu v menu filtry. Položky v menu jsou dynamicky vytvářeny na základě textových popisů uložených v souboru filtry.txt. * znamená ISO zkratku jazykové lokalizace, např. filtryEN.txt obsahuje filtry pro anglickou jazykovou lokalizaci.

Struktura je následující: název filtru;sql dotaz;volitelný parametr
Název filtru představuje to, co je zobrazeno v menu programu, SQL dotaz je to, co se pošle jako příkaz na databázi. Název, dotaz a případně volitelný parametr musí být vždy na jednom řádku a navzájem odděleny středníkem. Volitelný parametr je doplňující příkaz. Zatím existuje pouze jeden, - příkaz „default“, který udává, jestli tento filtr program použije jako výchozí. Pokud tento parametr nepoužijeme, program automaticky použije interní výchozí filtr, který vytváří klasickou servisní řadu zakázek, tj. nevyřízené zakázky řazené dle doby zbývající k vyřízení. Další filtr píšeme vždy na nový řádek.

ciselnerady, stavy, stavyvle, pracovnici, typyoprav
- prosté textové soubory, obsahují odpovídající hodnoty navolené v programu na záložce Nastavení
stylservis.css
- soubor definující styl HTML souboru se stavy zakázek pro použití na webových stránkách servisu.

opravy.j*
- jazykový soubor obsahující textové popisky k jednotlivým ovládacím prvkům programu. Prostřednictvím tohoto souboru je možné vytvořit zjednodušený překlad programu do jiného jazyka nebo třeba přejmenovat kolonky v programu, více viz bod 7. Tento soubor není plnohodnotným překladem programu.

* Tento soubor existuje ve verzi 3 jen z důvodu zpětné kompatibility. Byl plně nahrazen novým systémem pro plnohodnotný překlad.

2. Popis některých polí databáze 

Kompletní schéma databáze udává soubor schemams.sql.

Tabulka Opravy:
udaj1 – vlastní číslo zakázky, pokud nepoužíváme vlastní číselné řady potom je v něm obsah pole cislozakazky
udaj2 – kód zboží
udaj3 – part number
udaj4 – typ opravy
udaj5 – rezervované pro řídící příkazy
iddletypu – ID zakázky určitého typu, slouží pro generování ID nové zakázky tohoto typu.

3. Návrhář tiskových sestav

Jedná se o FastReport standard. Dokumentaci a příklady najdete na stránce výrobce nebo pomocí vyhledávače. Domovská stránka výrobce je www.fastreport.com.

3.1 Vytváření a instalace vlastních tiskových sestav

Vlastní tiskové sestavy je možno použít na dvou místech programu. V okně detailu zakázky - spodní lišta v detailu zakázky pod standardními tlačítky. Nebo v hlavním okně programu v menu Nástroje/Přehledy. 

Doporučený postup instalace vlastní tiskové sestavy pro detail zakázky:
- vyberte některou z přednastavených tiskových sestav (nebo stáhněte z webové stránky programu), která se nejvíce podobá vašemu záměru.
- zkopírujte ji/uložte do složky sestavy/vlastní
- upravte ji v návrháři podle vašich představ
- otevřete (pokud neexistuje tak vytvořte) v poznámkovém bloku (notepad) soubor vlastni.txt, tento soubor musí být umístěn ve složce sestavy/vlastni.
- přidejte řádek s popisem a názvem vaší nové sestavy oddělené středníkem, syntaxe je podobná souboru filtry.txt, tzn. „popis sestavy;jmenosouboru.fr3“ a uložte. Pozor! Každá nová deklarace musí být vždy na novém řádku stejně jako v souboru filtry.txt.

Po znovuspuštění programu se vytvoří odkaz na novou sestavu v detailu zakázky (dole pod standardními tlačítky). 

Pro přidání sestavy do menu Nástroje/Přehledy existuje podobný postup, pouze umístění sestav je ve složce sestavy/prehledy/*/, kde * znamená zkratku ISO kódu jazykové lokalizace. Tedy například anglická verze bude mít tyto sestavy ve složce sestavy/prehledy/en/. Zde upravujeme soubor prehledy.txt syntax je stejný jako v prvním případě.

4. Uživatelské účty

Pevný účet administrátora je „admin“, heslo „servis“.

Popis záložky správa uživatelů:
funkce – zapnout správu uživatelů: zobrazí přihlašovací dialog při spuštění programu, umožní přihlášení pracovníka svým jménem a heslem a se svým oprávněním.

5. Nastavení funkce SMS a maily technikům – automatické informování technika o přidělení zakázky.

Funkce – použít uživatele jako pracovníky – při zapnutí nahradí ručně zapsaný seznam pracovníků na záložce Nastavení/Základní uživateli ze seznamu uživatelů.

Funkce – e-maily technikům – zapíná odeslání automatické zprávy na e-mail technika (uživatele) při výběru technika v detailu zakázky, v tabulce uživatelů musí být vyplněna e-mailová adresa.

Funkce – SMS technikům – totéž ale formou SMS, v tabulce uživatelů musí být vyplněno mobilní číslo v kolonce telefon.

Pro fungování zasílání zpráv technikům (uživatelům) formou SMS nebo e-mailu nemusí být zapnuta správa uživatelů (přihlašování do programu), pouze názvy uživatelů by měly odpovídat jménům pracovníků na záložce Nastavení/Základní, což se nejsnadněji zajistí zapnutím volby „Použít uživatele jako pracovníky“ (informace o tom jaký má pracovník e-mail nebo telefon pro zaslání zprávy je pouze v tabulce uživatelů na záložce Správa uživatelů, proto se musí shodovat se seznamem pracovníků/techniků na záložce Základní).

6. Nahrávání stavu zakázek na web

Hodnoty nastavení pro FTP připojení odpovídají nastavení běžného FTP klienta. Bližší vysvětlení zaslouží pouze parametr „složka“. Jedná se o složku (adresář) na FTP serveru, do které se bude zapisovat výsledný HTML soubor a odkud ho bude číst webový klient uživatele skrz webový server. K této složce je potřeba uvést plnou cestu z místa FTP loginu, mám-li například webovou prezentaci v adresáři web, který je přímo v kořenovém adresáři webového serveru, může cesta vypadat například takto: ./web nebo /web nebo web (záleží na platformě a na nastavení serveru). Pokud chci soubor do nějakého podadresáře na webu, použiji např. ./web/servis, samozřejmě adresář servis musí existovat. V některých případech muže FTP server defaultně logovat někam jinam než do webového prostoru, pak v parametru složka použijeme standardní „cestovní“ konvenci např. ../../ibays/www/web1 

Funkce umožňuje nadefinovat datová pole, která se budou na webu zobrazovat. Tato funkce je určena odborníkům a vyžaduje alespoň základní znalost SQL. Výchozí nastavení odpovídá původní funkcionalitě, která na web zobrazuje pouze parametry číslo zakázky, stav zakázky a předpokládané datum zhotovení. Použití je pro znalé SQL zřejmé, úpravou SQL dotazu docílíme jiného (širšího) výběru pro výstupní/exportní funkci, stejně tak ovlivníme způsob řazení zakázek ve výsledném HTML souboru. Názvy jednotlivých datových polí použitelných v SQL dotazu udává soubor schemams.sql, viz kapitola 1. Nadpisy sloupců udává kolonka „záhlaví sloupců tabulky“, jednotlivé nadpisy musí být odděleny středníkem. Důležité upozornění: dobře si rozmyslete která pole uvádět na web – zejména pokud se jedná o citlivá data, jako např. jména či tel. čísla! - viz zákon o ochraně osobních údajů. V takovém případě je možné podmínky uvést na servisním listu, který zákazník podepíše při příjmu zakázky. Také se naskýtá vytvořit zabezpečený přístup pomocí autentifikace na Vašem webu a zpracování hodnot vlastní webovou aplikací nebo skriptem. Pro tento účel existuje možnost exportovat data ve formátu CSV.

Výsledný vzhled generované HTML stránky s hodnotami můžeme ovlivnit pomocí souboru se styly. Tento soubor se musí jmenovat stylservis.css a umístí se na webovém serveru do složky s webovou stránkou se stavy.

7. Jazyk a lokalizace programu

	Program zahrnuje 2 systémy umožňující překlad do jiného jazyka. Nastavení je dostupné na záložce Nastavení/Jazyk. Druhý, na záložce níže uvedený systém, je zastaralý a neumožňuje kompletní překlad. Existuje pouze z historických důvodů (zpětná kompatibilita) a neměl by se používat pro nové instalace. Pro plnohodnotný překlad proto vždy použijte první variantu na záložce Nastavení/Jazyk. Jazykové soubory jsou umístěny ve složce lng. Integrovaný editor umožňuje vytvářet vlastní jazykové soubory. V případě že jazykový soubor použijete pro účel přejmenování kolonek v detailu zakázky nebo jiných popisků v programu, pracujte vždy s vlastní kopií jazykového souboru, protože originály jednotlivých jazyků mohou být přepsány/aktualizovány v rámci aktualizací. V případě, že by došlo k poškození nebo ztrátě originálního jazykového souboru, potom je možné stáhnout originál z webové stránky programu Opravy a servis.

8. Zabezpečená komunikace s webovým/FTP nebo SMTP serverem

Vyžaduje nainstalované knihovny OpenSSL. Podrobnosti k OpenSSL na stránce výrobce http://www.openssl.org/. V případě potíží může pomoct nakopírovat knihovny libeay32.dll a ssleay32.dll přímo do složky programu.

9. Import práce a materiálu

Ceník práce a materiálu je možné naplnit i pomocí externího souboru (např. exportovaný seznam z informačního systému). Funkce je dostupná v menu po kliknutí pravým tlačítkem na seznam položek práce a materiálu. Importovaný soubor musí mít formát CSV – hodnoty oddělené středníkem. Příklad struktury souboru:
70706276;Zdroj 300W;530
10011;Výměna zdroje;150
60100040;Diagnostika;200

Pro správnou funkci automatického doplňování položek práce a materiálu během práce se zakázkou je nutné, aby názvy položek byly jedinečné, tj. aby v seznamu nebylo více položek s úplně stejným názvem.
Na vyžádání je pro registrované uživatele zdarma k dispozici program pro import práce a materiálu ze systému Money S3.

10. Import nové zakázky ze souboru.

Novou zakázku je možné také založit z externího souboru. To umožní například vytvořit novou zakázku na základě údajů zadaných zákazníkem na webové stránce servisu přes webový formulář. Předpokladem je, že webový formulář, resp. odpovídající skript je naprogramován tak, aby zadané údaje uložil (zaslal) v určitém formátu (XML) dle následujícího vzoru:

<?xml version="1.0" encoding="windows-1250"?>
<data>
<zakazka>
<druhzbozi>MB K7S41</druhzbozi>
<prislusenstvi>záslepka</prislusenstvi>
<stav>vyteklé kondenzátory</stav>
<seriovecislo>SI156421</seriovecislo>
<vadadlezakaznika>nefunguje</vadadlezakaznika>
<zakaznikjmeno>Jan Novák</zakaznikjmeno>
<zakaznikkontakt>777123456</zakaznikkontakt>
<pozadovanereseni>opravit</pozadovanereseni>
<cislodokladu></cislodokladu>

Následující údaje nemusí souviset se založením nové zakázky, ale jsou povolené pro import:

<nazevdodavatele>ABC</nazevdodavatele>
<dodacilist>123</dodacilist>
<kodzbozi>456</kodzbozi>
<partno>c11102</partno>
<externiodkaz></externiodkaz>
</zakazka>
</data>

soubor musí mít příponu xml.

11.1 Mailing a SMS zákazníkům

	Funkce slouží pro automatické zasílání zpráv zákazníkům při změně stavu jejich zakázky. Nastavení funkce je na záložce Nastavení/Mailing/Sms. Nastavení funkce mailing je podobné jako nastavení běžného mailového klienta. Odesílání se realizuje přes uživatelem nastavený SMTP server. Pokud jsou v systému nainstalované knihovny OpenSSL, pak je možné použít zabezpečené komunikace s poštovním serverem skrze SSL. Klíčovým nastavení je samotná definice odesílaných zpráv ve vztahu ke stavům zakázky. Stavy zde uvedené se musí shodovat se stavy nadefinovanými na záložce Nastavení/Základní. Pokud stavy změníme na záložce Nastavení/Základní, musíme je také ručně změnit zde na záložce Mailing. Stejně tak pokud přidáme nebo ubereme některý stav, je třeba ho zde dopsat na nový řádek resp. ho odstranit. Vazby mezi stavem a odesílanou zprávou jsou společné pro mailing i SMS.

V textech odesílaných pomocí funkce mailing nebo SMS je možno použít proměnné, které budou v okamžiku odeslání zprávy nahrazeny určitou hodnotou.

Proměnná
<cislozakazky> bude nahrazena číslem zakázky
<cenacelkem> bude nahrazena celkovou cenou zakázky
<popispraci> bude nahrazena popisem prací
<datumprijeti> bude nahrazena datem přijetí zařízení do servisu/reklamace
<druhzbozi> bude nahrazena názvem zařízení přijatým do servisu/reklamace

příklad zprávy:
Vase zakazka <cislozakazky> je pripravena k odberu a stoji <cenacelkem> kc.

Upozornění: hodnoty proměnných se nezobrazují v dotazu uživateli před odesláním zprávy, ale jsou nahrazeny až při vlastním odesílání.

Texty zpráv je vhodné psát bez diakritiky nebo jiných speciálních znaků. Toto platí obzvláště v případě SMS.

Odesílání SMS se uskutečňuje prostřednictvím GSM modemu a samotnou komunikaci s GSM modemem zajišťuje samostatný program smsos.exe ve složce programu. Tento program (dále jen SMS modul), komunikuje s GSM modemem prostřednictvím portu COM. Nejvhodnější je fyzické připojení k PC přes konektor RS232 ale komunikace je možná i přes virtuální com port v systému Windows (GSM modem může být připojen přes USB nebo Bluetooth). Podrobný popis funkcí SMS modulu najdete v dokumentu smsos.rtf ve složce programu.

11.2 Mailing a SMS technikům
Funkce slouží pro informování techniků při přidělení zakázky a je navázána na událost výběru technika v detailu zakázky. Nastavení funkce je analogické k výše popsané funkci mailing a sms zákazníkům včetně možnosti používat proměnné.

12. Vlastní číselné řady

Funkce umožňuje ovlivnit formát čísla zakázky. Je několik možností, které jde vzájemně kombinovat, ale je třeba předem varovat před zbytečně složitým nastavením, které může vést ke zpomalení programu a databáze. Problematika vlastních číselných řad je značně komplikovaná. Systém číslování by se měl nastavovat pouze na začátku - ideálně na prázdné databázi před založením první zakázky. Jakékoliv dodatečné změny je třeba důkladně zvážit, pečlivě pročíst tuto kapitolu případně konzultovat s uživatelskou podporou programu.

Důležité pojmy:
jednoduché (skutečné) číslo zakázky: hodnota generovaná databází, kterou nelze uživatelsky měnit. V případě vypnutých vlastních číselných řad (výchozí nastavení programu) je jediným číslem zakázky. V databázi je umístěna pod názvem „cislozakazky“ a je primárním klíčem tabulky opravy. Protože hodnotu generuje samotná databáze a jedná se o primární klíč, je vždy zajištěna její jedinečnost, nikdy nemůže dojít ke vzniku duplicity.

vlastní (uživatelské) číslo zakázky: hodnota generovaná programem na základě hodnot přednastavených uživatelem. Viz níže. Výsledný tvar je dán nastavením. Uživatel také může tuto hodnotu dodatečně změnit/opravit, přičemž bere na sebe případná rizika popsaná na konci kapitoly. Fyzicky se vlastní číslo zakázky v databázi ukládá pod názvem „udaj1“. V případě vypnutých vlastních číselných řad je v poli „udaj1“ kopie pole „cislozakazky“, tedy skutečné číslo zakázky.

vlastní číselná řada: posloupnost složená z vlastních (uživatelských) čísel zakázek. 
jednoduchá číselná řada: posloupnost složená z jednoduchých čísel zakázek

Při vytváření vlastních číselných řad platí následující pravidla:
a) Jestliže nemáte vážný důvod pro použití vlastních čísel zakázek, nepoužívejte je. Ponechte jednoduchou číselnou řadu. Zde více než jinde platí, že síla a rychlost je v jednoduchosti.

b) Jestliže je pro vás značným přínosem například členit zakázky dle roku, použijte kolonku „vlastní začátek číselné řady“ pro rok s nějakým oddělovačem, například 2014/ nebo 2014_ apod. Nepoužívejte pro číslo zakázky znaky s diakritikou, uvozovky, středník nebo apostrof.

c) Program umožňuje nastavit část vlastního čísla navíc dle typu zakázky. Je třeba si uvědomit, že typů zakázky může být teoreticky libovolně mnoho a pro každý je třeba počítat a udržovat jedinečnou řadu, což je obzvláště komplikované při souběžné práci více uživatelů, kterých může být teoreticky také mnoho, s čímž řádově roste početní náročnost. Proto u této funkce obzvláště platí – nepoužívejte ji, nemáte-li pro to vážný důvod.

Modelové případy:
1. používám jednoduchou číselnou řadu. (Funkce vlastní číselné řady je vypnuta.)
2. používám vlastní začátek + jednoduché číslo zakázky
3. používám vlastní začátek + vlastní počítadlo místo jednoduchého čísla zakázky. Uvědomuji si, že nevhodným nastavením počítadla můžou vznikat duplicity ve vlastním čísle zakázky.
4. používám vlastní začátek + jednoduché číslo zakázky + vlastní část dle typu zakázky (případně naopak viz přepínač) ale akceptuji, že můžou nastat různé komplikace zejména výkonnostní (pomalá odezva programu, nadbytečný nárůst velikosti databáze, v krajním případě až zahlcení v případě mnoha typů zakázek a mnoha uživatelů).

Vlastní počítadlo:
Umožňuje nahradit skutečné číslo zakázky v čísle vlastním svou hodnotou. Tato funkce jde použít například pro každoroční číslování od 1. viz modelová situace 3. 
Příklad: mám nastavený vlastní začátek číselné řady na 2013/ + hodnota vlastního počítadla. Program tedy generuje čísla zakázek jako 2013/1, 2013/2, 2013/3 atd. V lednu 2014 chci nastavit tvar čísla na 2014 a číslovat znovu od 1. V kolonce vlastní začátek napíšu 2014/ a v hodnotě vlastního počítadla zvolím/vepíšu 0 a kliknu na tlačítko nastavit. Tím se hodnota vlastního počítadla „vyresetuje“ na 0. Ve skutečnosti to znamená, že program v databázi nastaví hodnotu počítadla u poslední zakázky na 0 a protože počítadlo počítá od předchozí zakázky +1, bude následující nová zakázka mít hodnotu 1 resp. 2014/1. Nastavení počítadla na 0 u předchozí zakázky neovlivní vlastní ani skutečné číslo této zakázky, tato hodnota slouží pouze pro výpočet hodnoty vlastního počítadla.

Změna vlastního čísla zakázky:
Program umožňuje vlastní číslo zakázky uživatelsky změnit. Tato funkce je diskutabilní stejně jako funkce pro mazání zakázky z databáze nebo ruční editace databáze v jiném programu. Je třeba si uvědomit, že program samotný nejlépe zajistí konzistenci číselných řad a záznamů v databázi. Jakékoliv ruční zásahy mohou vést k nekonzistenci. Je třeba dát pozor, aby nedošlo k ručnímu nastavení hodnot, které již v databázi jsou. Uživatel si tak může sám nastavit duplicitu nebo odstranit hodnotu, kterou již vydal na tištěném dokladu zákazníkovi. Funkci je možno vyvolat pravým tlačítkem myši na konkrétní zakázce.