Alkohol - XML

Comments (...)

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

      &lt;    <  less than      -> mezera

      &gt;    >  greater than   -> mezera

      &amp;   &  ampersand      -> +

      &apos;  '  apostrophe     -> mezera

      &quot;  "  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:

 

      < ... &lt;

      > ... &gt;

      & ... &amp;

      ' ... &apos;

      " ... &quot;

 

      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

===================================================

 

 

 

 

Comments (...)

Created with Help & Manual 6 and styled with Premium Pack 2.0