Obsah

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

Nastavení číselníku DPH pro EET

Postup pro prodejny

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

http://www.etrzby.cz/cs/odkdy-evidovat-trzby

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

@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

Varianta 2 - nevizuální daemon na serveru Linux

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

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