2014.05.14a / 00:00
001) Alkohol XML
- znaky nepovolené v XML se převádí na:
http://www.w3schools.com/xml/xml_syntax.asp
< < less than -> mezera
> > greater than -> mezera
& & ampersand -> +
' ' apostrophe -> mezera
" " quotation mark -> mezera
program je nutné nainstalovat na počítačích, na kterých se generují XML alkoholu na všech VO - OV/HK/UB
- pro EAN: 683899838871 se do XML bere: 0683899838871
jde už o 3. vyjímku, kdy se validní EAN musí pro hlášení alkoholu uvést s úvodními nulami do délky 14 číslic:
089540453705 -> 0089540453705
89540453705 -> 0089540453705
683899838871 -> 0683899838871
všechny tvary EAN jsou validní
další podobné vyjímky doplníme obratem do programu, mělo by ale stačit EAN požadovaný v XML alkoholu
zadat v kartě zboží do pole Uživatel / EAN kusový/další zboží - pole se prioritně bere do XML alkoholu
a nemá vliv na hledání zboží podle EAN, lze zadat i jako další EAN s vazbou na zboží do číselníku EANů
- pro IČ 0 se data neodesílají
- doplněn protokol o generování - signalizované problémy obsluha musí opravit v číselníku zboží a partnerů
a generování opakovat, dokud jsou v protokolu o generování nějaké problémy signalizovány
Příklady hlášení problémů - EAN (validita) + IČ (validita) + DIČ (CZ + 0123456789):
68151 zmena: [] ===> [] ... ### 03 EAN:[] není zadán - DOPLŇTE pro zboží:[68151] !!!
68151 zmena: [11111111] ===> [11111111] ... ### 04 EAN:[11111111] není validní - OPRAVTE pro zboží:[68151] !!!
hlášeno až za přehledem zboží:
### 07 IČ - ### IČ:[00000002] - chybné IČ - OPRAVTE !!!
### 05 DIČ - ### DIČ:[CZ 00268828] obsahuje nepovolené znaky, může obsahovat pouze znaky:[CZ0123456789] - OPRAVTE !!!
### 05 DIČ - ### DIČ:[Neplatce DPH] obsahuje nepovolené znaky, může obsahovat pouze znaky:[CZ0123456789] - OPRAVTE !!!
2014.04.04a / 00:00
001) Alkohol
- upraveny konverze nepovolených znaků v XML - < > & apostrof uvozovky
- doplněno logování
2014.01.01b / 01:00
001) XML pro CZL002 - Oznámení distributora lihu
- v názvu zboží a výrobce nahrazeny zakázané znaky v XML entitách:
< ... <
> ... >
& ... &
' ... '
" ... "
tyto znaky mohou být v názvu zboží i výrobce použity, automaticky budou nahrazeny
2014.01.01a / 00:00
001) XML pro CZL002 - Oznámení distributora lihu
- pole Vytvoreno lze editovat - POZOR - musí být zachován jeho formát, přebírá se do XML
protože má být datum a čas uveden v UTC = GMT = -1 hodinu, program od aktuálního času odečte preventivně 2 hodiny
- pole IDOznameni neměňte !
2013.12.27e / 15:00
001) XML pro CZL002 - Oznámení distributora lihu
- upraveno pole Objem - celočíselné
- Př.:
<t:Objem>200</t:Objem>
- uprraven seznam výrobků v XML
- Př.:
<t:Vyrobek>
<t:IDVyrobku>0001</t:IDVyrobku>
<t:Vyrobce>vyrobce</t:Vyrobce>
<t:Nazev>Bozkov Tuzemsky 0,5ln 37,5%</t:Nazev>
<t:Objem>500</t:Objem>
<t:EAN>8594005010116</t:EAN>
<t:ProcentoLihu>37.5</t:ProcentoLihu>
</t:Vyrobek>
<t:Vyrobek>
<t:IDVyrobku>0002</t:IDVyrobku>
<t:Vyrobce>vyrobce</t:Vyrobce>
<t:Nazev>MISSIS Vlas.or.cr.0,5l 16%Gran/5</t:Nazev>
<t:Objem>500</t:Objem>
<t:EAN>8594000207368</t:EAN>
<t:ProcentoLihu>16.0</t:ProcentoLihu>
</t:Vyrobek>
2013.12.01b / 12:00
001) Generování XML CZL002 - Oznámení distributora lihu
- funkci je nutné spouštět POUZE z Servis / Číselníky / Číselník zboží
- doplněna záložka - Alkohol - data - je možné zobrazit seznam zboží i pohybů
Oprávnění: 8812 Číselník zboží - Zobraz
- doplněn protokol o generování s chybami
- pokud není vyplněn Výrobce (pole TypStroje), použije se text vyrobce
- z textů je odstraněna diakritika kvůli kódování UTF-8
2013.12.01b / 12:00
002) Postup generování:
- jednorázově spusťe funkce:
Servis / Data / Číselníky - Nastavení pole Čárkový kód z Číselníku EANů
Servis / Data / Číselníky - Test alkoholu - líh + pivo
- Servis / Číselníky / Číselník zboží / Alkohol
- v kalendáři OznameniZaDen nastavte požadované datum, za které oznámení generujete
- pokud není zaškrtnuto pole Záporné pohyby jsou pohyby se záporným množstvím vynechány
- záporné pohyby nejsou v popisu povoleny - nutné dořešit s celní správou!
- spusťe vlevo dole funkci: XML CZL002 - Oznámení distributora lihu
- zobrazí se protokol generování a výsledný XML soubor
- vygenerovaný soubor naleznete na disku podle XML cesta
- generování lze libovolně opakovat, do hlavičky použitých uzavřených dokladů se zapíše datum generování
- správnost generovaného XML bohužel nelze na portálu celní správy nijak ověřit tak jak to umí např. portál
daňové správy
validita generovaného XML ověřena aspoň v Internet Exploreru
testoval jsem na datech 1.11.2013-4.11.2013 - zaškrtávací pole vpravo dole
2013.12.01a / 00:00
001) Servis / Data / Číselníky
- doplněna záložka Alkohol s funkcemi:
- Nastavení pole Čárkový kód z Číselníku EANů
- funkce doplní do pole Čárkový kód v kartě zboží pokud je prázdné první výskyt EAN z číselníku EANů
pro dané zboží
- tuto funkci jednorázově spusťte
- pole Čárkový kód případně ručně nastavte na aktuálně používaný EAN zboží
- Oprávnění: 8808 Data - Nastavení pole Čárkový kód z Číselníku EANů
- Test alkoholu - líh + pivo
- funkce testuje správné nastavení všech karet s alkoholem pro Oznámení distributora lihu
- funkci periodicky spouštějte, důležité po doplnění nebo změně nastavení zboží s alkoholem
- Oprávnění: 8809 Data - Test alkoholu - líh + pivo
2013.12.01a / 00:00
002) Číselník zboží - doplněna záložka Alkohol
- nová funkce: XML: CZL002 - Oznámení distributora lihu
- Oprávnění: 8810 Číselník zboží - XML: CZL002 - Oznámení distributora lihu
- funkce zatím generuje jen vzorový XML
- zadá se:
- Datum, za který se generuje oznámení
- typ podání - řádné / opravné
- cesta ke generovanému XML souboru
- Tisk XML
- Oprávnění: 8811 Číselník zboží - Tisk XML
2013.12.01a / 00:00
004) Vzorový XML pro CZL002 - Oznámení distributora lihu:
===================================================
<?xml version="1.0" encoding="utf-8"?>
<CZL002 xmlns:t="http://www.celnisprava.cz/XMLSchema/RZL/Oznameni/Typy/1.0.0"
xmlns="http://www.celnisprava.cz/XMLSchema/RZL/Oznameni/CZL002/1.0.0">
<Hlavicka>
<t:IDOznameni>1342E666-86F2-4144-9601-0DF3672329BE</t:IDOznameni>
<t:Vytvoreno>2013-10-22T21:00:00.000Z</t:Vytvoreno>
<t:OznameniZaDen>2013-10-22</t:OznameniZaDen>
<t:TypPodani>Radne</t:TypPodani>
<t:OdesilatelDIC>CZ25130382</t:OdesilatelDIC>
</Hlavicka>
<Vyrobky>
<t:Vyrobek>
<t:IDVyrobku>IDV1</t:IDVyrobku>
<t:Vyrobce>Palirna1 s.r.o.</t:Vyrobce>
<t:Nazev>Vodka 0,5L</t:Nazev>
<t:Objem>500</t:Objem>
<t:EAN>4006381333931</t:EAN>
<t:ProcentoLihu>40.0</t:ProcentoLihu>
</t:Vyrobek>
<t:Vyrobek>
<t:IDVyrobku>IDV2</t:IDVyrobku>
<t:Vyrobce>Palirna1 s.r.o.</t:Vyrobce>
<t:Nazev>Rum 0,5L</t:Nazev>
<t:Objem>500</t:Objem>
<t:EAN>73513537</t:EAN>
<t:ProcentoLihu>38.0</t:ProcentoLihu>
</t:Vyrobek>
</Vyrobky>
<Polozky>
<Polozka>
<Odberatel>
<t:IC>25130382</t:IC>
<t:DIC>CZ25130382</t:DIC>
<t:Nazev>Odberatel1 s.r.o.</t:Nazev>
</Odberatel>
<VolnyObeh>
<t:PohybLihu>
<t:IDVyrobku>IDV1</t:IDVyrobku>
<t:Pocet>5</t:Pocet>
</t:PohybLihu>
<t:PohybLihu>
<t:IDVyrobku>IDV2</t:IDVyrobku>
<t:Pocet>5</t:Pocet>
</t:PohybLihu>
</VolnyObeh>
</Polozka>
</Polozky>
</CZL002>
===================================================
2013.12.01a / 00:00
005) SQL pro vytvoření seznamu zboží s alkoholem pro XML CZL002 - Oznámení distributora lihu:
===================================================
SELECT
z.Cislo AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS Nazev,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS INTEGER) AS ProcentoLihu
FROM
HR__Z201 AS z
WHERE
(Int32_12>=1) AND (Int32_12<=10) // spotrebni dan alkohol - lih a pivo
ORDER BY
z.Cislo
===================================================
2013.12.01a / 00:00
006) Generování XML CZL002 - Oznámení distributora lihu
- v nové záložce Alkohol v Číselníku zboží
- poznámky pro generování:
- pro generování XML se použije 1. výskyt EAN v Číselníku čárkového kódu
- pro typy dokladů CA, HO, FA, DL
- jen pro uzavřené doklady, v hlavičce dokladu bude uveden datum, pro který se XML generovalo - v poli Cinnost
ve tvaru RRRRMMDD
- generování proběhne pro nově uzavřené doklady do zadaného datumu generování s možností opakování generování
- položky v <Hlavicka>
- IDOznameni
- Př.: 1342E666-86F2-4144-9601-0DF3672329BE
- GUID - globálně unikátní bezvýznamový identifikátor oznámení generovaný dle ISO/IEC 9834-8:2008
jednoznačně identifikuje každou zprávu. Při vytváření oznámení pomocí ORO web klienta Celní správy
se toto pole vyplňuje automaticky.
- Vytvoreno
- Př.: 2013-10-22T21:00:00.000Z
- OznameniZaDen
- Př.: 2013-10-22
- Den, za který se oznámení podává
- Okamžik vzniku oznámení musí odpovídat času, kdy bylo oznámení sestaveno (položka OznameniZaDen).
Může být nejdříve v den (dle lokáního času ČR), za který se oznámení podává a nesmí obsahovat okamžik
v budoucnosti.
- Položka OznameniZaDen musí obsahovat datum, pro který existuje oznamovací povinnost dle zákona 307/2013 Sb.
v platném znění. Položka OznameniZaDen nesmí obsahovat budoucí datum.
- TypPodani
- Př.: Radne
- Radne, Opravne
- Řádné oznámení daného typu za uvedené období smí být podáno jen jedenkrát
- OdesilatelDIC
- Př.: CZ25130382
- string(10-12), CZ([0-9]){8,10}
- Daňové identifikační číslo (DIČ) osoby, která oznámení podává. Musí být shodné s údajem uvedeným v žádosti
subjektu o komunikační povolení.
- položky v <Vyrobek>
- IDVyrobku
- IDV2
- string (1-4), Bezvýznamový identifikátor výrobku unikátní v rámci jedné zprávy.
- Každý výrobek definovaný ve zprávě musí být použit v definici pohybů
- Každá definice výrobku musí obsahovat (v rámci dané zprávy) unikátní identifikátor výrobku
- Vyrobce
- Palirna1 s.r.o.
- string(1-255), Druh spotřebitelského balení (Výrobce) dle §43 (1) b) zákona č. 307/2013 Sb.
- Nazev
- Rum 0,5L
- string(1-500), Druh spotřebitelského balení (Název) dle §43 (1) b) zákona č. 307/2013 Sb.
- Objem
- 500
- decimal, v internvalu <60;10000>, Objem spotřebitelského balení uváděný v mililitrech dle §43 (1) b)
zákona č. 307/2013 Sb.
- EAN
- 73513537
- string(8-13), [0-9]{8}|[0-9]{13}, Evropský zbožový kód (EAN), kterým je opatřeno spotřebitelské balení
dle §43 (1) d) zákona č. 307/2013 Sb.
- EAN kód výrobku musí být validní EAN-8 nebo EAN-13
- ProcentoLihu
- 38.0
- decimal V internvalu <15;100>, Objemové procento lihu s přesností na jedno desetinné místo dle §43 (1) c)
zákona č. 307/2013 Sb.
- položky v <Odberatel>
- IC
- 25130382
- string(8-10), ([0-9]){8,10}, IČ osoby
- DIC
- CZ25130382
- string(10-12), CZ([0-9]){8,10}, DIČ osoby
- Nazev
- Odberatel1 s.r.o.
- string(1-255), Název osoby (obchodní firma/jméno, příjmení)
- položky v <PohybLihu>
- IDVyrobku
- IDV1
- String (1-4), V pohybech lihu je identifikátor výrobku použit jako jednoznačná reference na definici
výrobku v sekci výrobky téže zprávy.
- Každý identifikátor výrobku použitý v definici pohybů musí být uvedený v definici výrobků
- Pocet
- 5
- int >0, Počet kontrolních pásek, jimiž byl označen líh uvedený držitelem do volného daňového oběhu
dle §43 (1) a) zákona č. 307/2013 Sb.
2013.12.01a / 00:00
007) SQL pro vytvoření základního seznamu pohybů zboží s alkoholem pro XML CZL002 - Oznámení distributora lihu:
(zatím bez datumového rozlišení z řádků dokladů)
===================================================
SELECT
y.CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_FA AS x,
HRDBY_FA AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol - lih a pivo
===================================================
2013.12.01a / 00:00
008) SQL pro generování:
===================================================
SELECT
*
FROM
(
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_FA AS x,
HRDBY_FA AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_CA AS x,
HRDBY_CA AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_HO AS x,
HRDBY_HO AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_DL AS x,
HRDBY_DL AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
) AS xx
ORDER BY
IC,
RRRRMMDDDatumDokladu,
IDVyrobku
===================================================
2013.12.01a / 00:00
009) SQL pro stanovení seznamu zboží:
===================================================
SELECT
IDVyrobku,
Vyrobce,
NazevZ,
Objem,
EAN,
ProcentoLihu
FROM
(
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_FA AS x,
HRDBY_FA AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_CA AS x,
HRDBY_CA AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_HO AS x,
HRDBY_HO AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
UNION ALL
//------------------------------------
SELECT
*
FROM
(
SELECT
x.DatabazeRadky,
x.Cinnost AS RRRRMMDDGenerovani,
EXTRACT (YEAR FROM x.DatumDokladu) AS Rok,
EXTRACT (MONTH FROM x.DatumDokladu) AS Mesic,
EXTRACT (DAY FROM x.DatumDokladu) AS Den,
EXTRACT (YEAR FROM x.DatumDokladu)*10000+
EXTRACT (MONTH FROM x.DatumDokladu)*100+
EXTRACT (DAY FROM x.DatumDokladu) AS RRRRMMDDDatumDokladu,
// x.Stav,
// x.Barva,
y.CisloPartnera AS CisloPartnera,
p.ICO AS IC,
p.DIC AS DIC,
p.Nazev AS NazevP,
x.CisloDokladu,
x.DatumDokladu,
x.DatumUskZdPl,
y.MnozstviMJ AS Pocet,
y.CisloZbozi AS IDVyrobku,
z.TypStroje AS Vyrobce,
z.Nazev AS NazevZ,
CAST(z.DPCAkcniCenaBezDPH*1000 AS INTEGER) AS Objem,
z.CarkovyKod AS EAN,
CAST(z.DPCAkcniCenaSDPH AS FLOAT) AS ProcentoLihu
FROM
HRD_X_DL AS x,
HRDBY_DL AS y,
HR__Z201 AS z,
HR__P200 AS p
WHERE
(X.Stav=1) AND // doklad uzavren
(X.Barva<>7) AND // doklad uzavren
(p.ICO<>0) AND // v DL presuny mezi sklady
(p.ICO<>19014325) AND // jiny nez Hruska
(x.CisloPartnera=p.Cislo) AND
(x.CisloDokladu=y.CisloDokladu) AND
(y.CisloZbozi=z.Cislo) AND
(ABS(y.MnozstviMJ)>0.0099) AND // ma byt ale jen kladny pocet
(CAST(z.DPCAkcniCenaSDPH AS FLOAT)>=15.0) AND (CAST(z.DPCAkcniCenaSDPH AS FLOAT)<=100.0) AND
(z.Int32_12>=1) AND (z.Int32_12<=10) // spotrebni dan alkohol
) AS x
WHERE
(RRRRMMDDDatumDokladu>=20131101) AND // upravit na 20131201
(
(RRRRMMDDGenerovani=20131104) OR
(
((RRRRMMDDGenerovani=0) OR (RRRRMMDDGenerovani IS NULL)) AND
(RRRRMMDDDatumDokladu<=20131104)
)
)
ORDER BY
RRRRMMDDDatumDokladu
//------------------------------------
) AS xx
GROUP BY
IDVyrobku,
Vyrobce,
NazevZ,
Objem,
EAN,
ProcentoLihu
===================================================