Uživatelské nástroje

Nástroje pro tento web


ruzne:eet

EET

Základní informace

Problematiku EET v OBISu řeší nová tabulka, která je přístupná jako záložka v okně dokladů/faktur a v okně úhrad. V lokálním menu jsou pak k dispozici funkce v sekci Elektronická evidence tržeb.

Pro správné fungování EET je třeba na Daňovém portálu podat ŽÁDOST O AUTENTIZAČNÍ ÚDAJE DO EET. Na základě přidělených přihlašovacích údajů se pak v sekci SPRÁVA ÚDAJŮ EVIDENCE TRŽEB vytvoří certifikát a provozovny. Certifikát se v OBISu nahraje do souboru obis/etc/eet_cert.p12. Konkrétní provozovnu si každý uživatel OBISu vydávající účtenky nastaví v okně Faktury/doklady - záložka Nastavení - Označení provozovny.

Daňový portál: https://adisepo.mfcr.cz/adistc/adis/idpr_pub/eet/eet_sluzby.faces

Certifikát je zabezpečen heslem. Před prvním použitím v OBISu je třeba jej odemknout a uložit heslo funkcí lok. menu ve fakturách Odemčení/uzamčení certifikátu EET.

Nová provozovna

Na Daňovém portálu https://adisepo.mfcr.cz/adistc/adis/idpr_pub/eet/eet_sluzby.faces sekce SPRÁVA ÚDAJŮ EVIDENCE TRŽEB odkaz PROVOZOVNY. Zde použít tlačítko Nová provozovna

Jednoduchý postup pro občasné tržby

  • běžným způsobem se vytvoří hotovostní příjmový doklad nebo hotovostní úhrada faktury
  • následně se použije funkce lok. menu Registrace tržby EET v dokladech nebo úhradách
  • systém zobrazí údaje, které budou na server odeslány
  • potvrdíme odeslání na server tlačítkem Odeslat tržbu (případně lze v tomto okamžiku naposledy registraci zrušit)
  • nakonec se vytiskne tisková sestava v dokladech Příjmový/výdajový doklad resp. Pokladní doklad k faktuře v úhradách, kde budou v případě zaregistrování platby vytištěny požadované údaje EET
  • doklad reps. úhradu spárovanou s registrovanou tržbou nelze v OBISu smazat

Nastavení číselníku DPH pro EET

  • číselník DPH musí mít vyplněn sloupec Kód přiznání DPH
  • pro běžné sazby je to kód vyssi resp. nizsi
  • zaokrouhlení musí mít sazbu DPH nevyplněnu (tj. prázdno a nikoliv hodnota 0)
  • pro přenesenou daňovou povinnost kód prenesenidod
  • penále/pokuty s 0 DPH kód dodaniost
  • dárkové poukazy na neurčené zboží/služby DPH prázdno "", kód cerpzuct

Postup pro prodejny

  • upravíme Vám uživatelsky tiskovou sestavu, která se při tisku automaticky zaregistruje a vytiskne požadované údaje EET
  • tyto automaticky registrované tisky účtenek lze realizovat také z výdejek skladu nebo výkonových protokolů
  • obsluha tedy obvyklým způsobem vytvoří např. výdejku a následný automatický tisk účtenky zajistí vše potřebné

Problémy při odesílání registrace na server

V případě že nelze tržbu odeslat na server (výpadek internetu nebo serveru) je tržba uložena v záložce EET v OBISu, ale nemá přiřazen tzv. FIK. V této situaci lze vytisknout účtenku bez FIK ale s tzv. PKP. Poplatník je povinen neprodleně po obnovení spojení všechny neodeslané účtenky zaregistrovat. Toto lze uživatelsky zajistit pomocí funkce lok. menu Odeslání neodeslaných tržeb EET. Doporučujeme nastavit automatickou kontrolu a odeslání na serveru např. v hodinových intervalech.

Kontrola EET

Na daňovém potrálu lze získat data o zaregistrovaných platbách. Tyto údaje lze porovnat s tiskovou sestavou v modulu faktury/doklady Tržby EET.

Minoritní činnost EET

Tiskárna pokladních dokladů

Je požadována tiskárna podporující ESC/POS a virtuální nebo fyzický COM port.

Postup pro Epson TM-T20II

  • připojit přes USB
  • vytvořit virtuální com port (ve Win10 bylo nutné aktualizovat ovladač v seznamu zařízení)
  • nastavit rawprint v apps.xml
  • zaregistrovat EET pomocí lok. menu v hotovostním dokladu a vytisknout system report z faktur Prodejka na pokladní tiskárnu
  • pro automatickou registraci vytvořit kopii prodejky a do typu tisku vložit následující LUA kód:

@cf.trydofile(LUADIR().."faktury/faktury_faktury-reports.lua") faktury_faktury.reports.TiskDokladuRegistraceEET(DSI, Form, Action, ReportName, Use, Name, true)

apps.xml

  <App Name="raw_print_print">
    <Command Platform="Windows">cmd /c "copy %s com4:"</Command>
  </App>
  <App Name="raw_print_preview">
    <Command Platform="Windows">notepad "%s"</Command>
  </App>

Automatická kontrola a odeslání neodeslaných EET tržeb

Varianta 1 - vizuálně v programu OBIS

  • v lok. menu Faktury → EET → Aktivovat automatické odesílání neodeslaných tržeb
  • nejvhodnější je varianta "Zobrazit je výsledek" kdy se v případě odeslání tržeb zobrazí okno s informací, které tržby byly odeslány
  • tato funkce je aktivní pouze pokud je uživatel přihlášen v OBISu a má odemknutý certifikát (kontrola se spouští každou celou hodinu)

Varianta 2 - nevizuální daemon na serveru Linux

  • vytvořit uživatele Eet, odemknout certifikát, nastavit setenv.sh
  • testovací neregistrovanou tržbu lze vytvořit pokud se dočasně nastaví proměnná: faktury_eet.URL=""

cron.d/obis

 45 7-18 * * *   obis  $SCRIPTSDIR/eetsend.sh || echo "EET send error"
 45 6 * * 1-5   obis  $SCRIPTSDIR/eetsend.sh eetadmin@domain.cz

Práva pro skupinu Eet

version=3
*.faktury_*=re
*.zakazky_*=n
*.ucto_*=n
*.prost_*=n
*.rozpocty_*=n
*.partneri_*=n
*.sklad_*=n
*.majetek_*=n
*.dokumenty_*=n
*.ukoly_*=n
analyza=n
kalendar=n
globaloption=R

eetsend.sh

#!/bin/sh
. `dirname $0`/setenv.sh
USER=Eet
PASSWORD=$EETPASS
DATANAME="data"
 
LOGDIR=$ROOTDIR/log
PID=eetsend.pid
LOG=eetsend.log
CONDEBUG=eetsend.condebug
DEBUG="-debug 2 -log $LOGDIR/$CONDEBUG"
 
pgrep -f $PID
if [ $? -eq 0 ]; then
  ps ax | grep $PID
  echo nelze spustit $@ - jiz bezi
  exit 1
fi
 
cat <<EOF | $ROOTDIR/bin64/obiscserver.bin $DEBUG -savepid $LOGDIR/$PID -notrigger -noxmlrpc -stdin -documentdir $DOCUMENTDIR >$LOGDIR/$LOG.daily 2>&1
Login $USER $PASSWORD $DATANAME "Client:eetsend.sh"
<EOF/>
Program "osex.dofile(LUADIR()..'debug.lua')
DEBUG.Init()
--ClientSession:SetOption('FakturyDM.eet_id_provoz','11')
--faktury_eet.SetPassword('heslo', '1')
assert(not faktury_eet.NeedAskPassword(),'NENI ODEMCENY CERTIFIKAT')
DEBUG:Add(osex.date())
local cert, key = faktury_eet.GetCertAndKey()
local ret, DaysRemain = faktury_eet.CheckCert(cert, DEBUG)
local Ok, tSendIDs=faktury_eet.SendSavedTrzba(DEBUG)
faktury_eet.RecalcSrcDokl(tSendIDs, DEBUG)
if not Ok then error('faktury_eet.SendSavedTrzba not Ok') end"
<EOF/>
Exit
<EOF/>
EOF
STATUS=$?
if [ $STATUS -ne 0 ]; then
  echo "--- EXIST STATUS $STATUS" >> $LOGDIR/$LOG.daily
  echo "--- CONDEBUG"
  cat $LOGDIR/$CONDEBUG
  echo "--- STDOUT"
  cat $LOGDIR/$LOG.daily
fi
echo `date` >> $LOGDIR/$LOG
cat $LOGDIR/$LOG.daily >> $LOGDIR/$LOG
 
#kontrola a warningy emailem
if [ -n "$1" ]; then
  egrep "(CW:|W:|E:)" $LOGDIR/$LOG.daily  > /tmp/$$
  [ -s /tmp/$$ ] && cat /tmp/$$ | mail -s 'Chyby EET send' $1
  rm /tmp/$$
fi
 
exit $STATUS

Kontrolní SQL v nočních přepočtech

  • scripts/setenv.sh
  • cron.d/obis: 04 06 * * * obis /home/obis/obis5/user/scripts/showeet.sh kontrola || echo "chyba showeet.sh"
  • ruční ověření: /home/obis/obis5/user/scripts/showeet.sh

showeet.sh

#!/bin/sh
 
#ROOTDIR,FIREBIRD,SCRIPTSDIR,DATAFILES
. `dirname $0`/setenv.sh
MAILTO=jmeno@domain.cz
 
for DATA in $DATAFILES; do
  if [ "$1" != "kontrola" ]; then
    echo
    echo DATA $DATA
    $FIREBIRD/bin/isql -u sysdba -p $ISC_PASSWORD -i $SCRIPTSDIR/eet.sql $DATABASEPATH/$DATA
  fi
  $FIREBIRD/bin/isql -u sysdba -p $ISC_PASSWORD -i $SCRIPTSDIR/eet_kontrola.sql $DATABASEPATH/$DATA > $ROOTDIR/log/eet_kontrola_$DATA.daily.log
  if [ "$1" != "kontrola" ]; then
    echo KONTROLA historie
    tail -n7 $ROOTDIR/log/eet_kontrola_$DATA.log
    echo KONTROLA aktualne
    cat $ROOTDIR/log/eet_kontrola_$DATA.daily.log
  else
    [ -s $ROOTDIR/log/eet_kontrola_$DATA.daily.log ] && cat $ROOTDIR/log/eet_kontrola_$DATA.daily.log | mail -s "Chyby EET $DATA" $MAILTO
    echo "showeet.sh kontrola `date`" >>$ROOTDIR/log/eet_kontrola_$DATA.log
    cat $ROOTDIR/log/eet_kontrola_$DATA.daily.log >> $ROOTDIR/log/eet_kontrola_$DATA.log
  fi
done

eet_kontrola.sql

SELECT 'NEODESLANE CHYBI FIK:', porad_cis, dat_odesl FROM faktury_eet 
  WHERE COALESCE(faktury_eet.fik, '') = '' AND COALESCE(faktury_eet.overeni, 0) = 0
  AND dat_trzby>'1.3.2017';
 
SELECT 'OVEROVACI MOD:', COUNT(porad_cis) FROM faktury_eet 
  WHERE COALESCE(faktury_eet.overeni, 0) = 1
  AND dat_trzby>'1.3.2017'
GROUP BY 1;
 
SELECT 'CHYBI FIK:', COUNT(porad_cis) FROM faktury_eet 
  WHERE COALESCE(faktury_eet.fik, '') = ''
  AND dat_trzby>'1.3.2017'
GROUP BY 1;
 
SELECT 'ZMENA CENY DOKLAD:', e.porad_cis, e.dat_odesl, e.celk_trzba, f.cenakuhrade
  FROM faktury_eet e
  JOIN faktury_faktury f ON f.idfaktura=e.porad_cis
  WHERE COALESCE(e.fik, '') <> '' AND COALESCE(e.overeni, 0) = 0
  AND abs(COALESCE(f.cenakuhrade,0) - COALESCE(e.celk_trzba,0))>1
  AND COALESCE(f.priznak,'') NOT LIKE '%N%'
  AND e.dat_trzby>'1.3.2017'
  AND e.typdokl='F';
 
SELECT 'ZMENA CENY UHRADA:', e.porad_cis, e.dat_odesl, e.celk_trzba, u.celkem
  FROM faktury_eet e
  JOIN faktury_uhrhl u ON u.iduhrdokl=e.porad_cis
  WHERE COALESCE(e.fik, '') <> '' AND COALESCE(e.overeni, 0) = 0
  AND abs(COALESCE(u.celkem,0) - COALESCE(e.celk_trzba,0))>1
  AND COALESCE(u.priznak,'') NOT LIKE '%N%'
  AND e.dat_trzby>'1.3.2017'
  AND e.typdokl='U';
 
SELECT 'ZMENA ZAKLADU VYDEJKA:', e.porad_cis, e.dat_odesl, e.zakl_dan1, e.zakl_dan2, e.zakl_dan3, p.cenapol
  FROM faktury_eet e
  JOIN sklad_prijemky p ON p.idprijemka=e.porad_cis
  WHERE COALESCE(e.fik, '') <> '' AND COALESCE(e.overeni, 0) = 0
  AND e.dat_trzby>'1.3.2017'
  AND abs(COALESCE(p.cenapol,0) - COALESCE(e.zakl_dan1,0) - COALESCE(e.zakl_dan2,0) - COALESCE(e.zakl_dan3,0) )>1
  AND COALESCE(p.priznak,'') NOT LIKE '%N%'
  AND e.typdokl='P';
 
SELECT 'ZMENA CENY VYDEJKA:', e.porad_cis, e.dat_odesl, e.celk_trzba, p.cenasdph
  FROM faktury_eet e
  JOIN sklad_prijemky p ON p.idprijemka=e.porad_cis
  WHERE COALESCE(e.fik, '') <> '' AND COALESCE(e.overeni, 0) = 0
  AND e.dat_trzby>'1.3.2017'
  AND abs(COALESCE(p.cenasdph,0) - COALESCE(e.celk_trzba,0) )>1
  AND COALESCE(p.priznak,'') NOT LIKE '%N%'
  AND e.typdokl='P';

eet.sql

SELECT COUNT(*) AS CELKEM FROM faktury_eet WHERE COALESCE(overeni,0) = 0 AND dat_trzby>'1.3.2017';
SELECT COUNT(*) AS OVEROVACI_MOD FROM faktury_eet WHERE COALESCE(overeni,0) = 1 AND dat_trzby>'1.3.2017';
SELECT COUNT(*) AS CENA_NULA FROM faktury_eet WHERE celk_trzba =0 AND dat_trzby>'1.3.2017';
SELECT COUNT(*) AS KREGISTRACI FROM faktury_eet WHERE COALESCE(faktury_eet.fik, '') = '' AND COALESCE(faktury_eet.overeni, 0) = 0;
SELECT e.id_pokl, u.idvyridil, COUNT(e.id_pokl) AS POCET_REGISTRACI FROM faktury_eet e
  LEFT JOIN common_uzivatele u ON u.uid=e.id_pokl
  WHERE COALESCE(e.overeni, 0) = 0
   AND dat_trzby>'1.3.2017'
  GROUP BY 1,2;
SELECT FIRST 1 porad_cis, fik, dat_odesl AS LASTREG FROM faktury_eet WHERE COALESCE(overeni,0) = 0 ORDER BY dat_odesl DESC;

Zjisteni hesla k odemceneho certifikatu

  • prihlasit jako user: print(ClientSession:UserDecryptString(ClientSession:GetOption("FakturyDM.EET_EncryptedPassword")))
ruzne/eet.txt · Poslední úprava: 2020/01/21 08:11 autor: Karel Petrů