; DDT pokladní doklad bez skladu jako daňový doklad ; verze z 24.2.2017 ; Autor: WinDUO Team Name('EET účtenka - A5') FileName('Uctenka.WNS') Designed('PokladnaS','PokladnaR','Pokladna') Author('Milan Slíva','EMail: sliva@fi.cz','http://www.fi.cz') Descr('Pokladní daňový doklad','bez skladových pohybů na A5','DPH bere z EET') PocetStrana:Word PocetPriloha:Word TabFontScale:Double PoziceRozpisu:Word PoziceRozpPril:Word ;**************************************************************************** ; Nastavení proměnných majících vliv na podobu tisku ;**************************************************************************** TabFontScale=1.8 ;TabFontScale - nastavení šířky písma v tabulce položek ;=1 písmo dle odhadu WinDUO ;=0 písmo bez změny šířky ;jinak index, tzn.např. =1.5 je 150% šířky odhadlé WinDUO ; =0.75 je 75% šířky odhadlé WinDUO ;cim vetsi cislo, tim tlustsi, obéznější (prsatější) písmenka PoziceRozpisu=55 ;y-souradnice, odkud se tiskne hlavicka PoziceRozpPril=16 ;y-souradnice, odkud se tiskne hlavicka na priloze ;**************************************************************************** DeclareRec('Pokladna') DeclareRec('Denik') DeclareRec('Program') VetaP:LongInt ; definuje proměnnou pro pokladnu VetaD:LongInt ; definuje proměnnou pro denik GetBindRec('Pokladna') if(not IsPKP(Pokladna.PKP)) begin Halt('Doklad není evidován v EET'); end; EETOffset:Integer=-2 FontSize(4.5) FontFace(Bold) Text(57.5,39.5,TA_CENTER,'NENÍ DAŇOVÝM DOKLADEM PRO ÚČELY DPH!') Text(180,0,TA_RIGHT,'Doklad o platbě - ÚČTENKA') PaintMetaFile(0,0,30,20,Program.Logo); FontSize(3.5) Brush(UserBrush) Pen(ps_Null,0.1) Pen(0,0.3) BoxA(145,5,180,10) LineA(115,18,58,18) LineA(58,18,58,11) LineA(58,11,117,11) Brush($FFFFFF) Pen(0,0.7) RoundBoxA(115,11,180,45,4,4) Brush(NullBrush) LineA(2,45,176,45) ArcA(0,41,4,45,0,43,2,45); LineA(0,40,0,43) ArcA(0,42,4,38,2,38,0,40); LineA(2,38,115,38); Pen(0,0.1) LineA(115,38,180,38) ;LineA(0,47,180,47); Text(175,5.5,TA_RIGHT,Pokladna.Doklad); FontFace(Normal) Text(142,5.5,TA_RIGHT,'Číslo dokladu') FontFace(Bold|Italic) FontSize(3.5) Text(118,13,TA_LEFT,'Odběratel:') Text(0,20,TA_LEFT,'Dodavatel:') FontFace(Bold); ClearFontIndex() GetFontIndex(64,Program.Firma) GetFontIndex(64,Program.Rozsireni) GetFontIndex(64,Program.Ulice) GetFontIndex(64,Program.Mesto) FontIndex() Text(17,20,TA_LEFT,Program.Firma) Text(17,23.3,TA_LEFT,Program.Rozsireni) Text(17,26.6,TA_LEFT,Program.Ulice) Text(17,30,TA_LEFT,Program.PSC+' '+Program.Mesto) FontSize(2.2) FontWidthScale(0) ClearFontIndex() GetFontIndex(54,Trim(Program.FaktSpecText[1])) GetFontIndex(54,Trim(Program.FaktSpecText[2)) FontIndex() Text(113,6,TA_RIGHT,Trim(Program.FaktSpecText[1])) Text(113,8,TA_RIGHT,Trim(Program.FaktSpecText[2])) FontSize(3.5) FontFace(Bold); FontWidthScale(0) ClearFontIndex() GetFontIndex(56,Pokladna.Firma) GetFontIndex(56,Pokladna.Rozsireni) GetFontIndex(56,Pokladna.Ulice) GetFontIndex(56,Pokladna.Mesto) FontIndex() Text(120,18,TA_LEFT,Pokladna.Firma) Text(120,21.3,TA_LEFT,Pokladna.Rozsireni) Text(120,24.6,TA_LEFT,Pokladna.Ulice) Text(120,28,TA_LEFT,Pokladna.Mesto) Text(120,31.4,TA_LEFT,Pokladna.PSC) FontFace(Normal); FontSize(3) Text(17,34,TA_LEFT,'IČO: '+NULL(Program.ICO,8,True)+' DIČ: '+Program.DIC) FontFace(Normal); FontFace(Bold); FontSize(5) if(Pokladna.Typ=0) begin Text(88,12,TA_Center,'Uhrazeno v hotovosti') end else if(Pokladna.Typ<9) begin Text(88,12,TA_Center,'Placeno kartou') end; FontSize(3.5) FontFace(Normal); ;FontSize(3) if((not Program.HideICO) or (Pokladna.ICO>=Program.HideICOLess)) Text(125,40,TA_LEFT,'IČO: '+NULL(Pokladna.ICO,8,True)+' DIČ: '+Pokladna.DIC) FontSize(4) FontFace(Normal) Text(5,PoziceRozpisu-2+EETOffset,TA_Left,'Účel platby: ') FontSize(4.5) FontFace(Italic|Bold) Text(25,PoziceRozpisu-2+EETOffset,TA_Left,Pokladna.Popis) ; ******************** ; Deklarace proměnných ; ******************** LocStr:String Hlava1:String Hlava2:String LocW:Word LocW2:Word LocW3:Word LocW4:Word LocL:LongInt SazbaDPHNizsi:Byte SazbaDPHVyssi:Byte SazbaDPHSnizena:Byte VyssiDPHZaklad:Double NizsiDPHZaklad:Double SnizenaDPHZaklad:Double VyssiDPHDan:Double NizsiDPHDan:Double SnizenaDPHDan:Double CastkaSDPH:Double BezDPH:Double Celkem:Double CelkemBezDPH:Double LocD:Double DynStr:String NaStrane:Double PocetStran:Word ; pocet priloh AktStrana:Word LocBo:Boolean Mezisoucet:Double LocPos:Real LocB:Byte LocOfs:Real LocSize:Real ; *********************** ; Inicializace proměnných ; *********************** LocStr='' Hlava1='' Hlava2='' LocW=0 SazbaDPHNizsi=SazbaDPH(dph_snizena,Pokladna.Datum_ZP) SazbaDPHVyssi=SazbaDPH(dph_zakladni,Pokladna.Datum_ZP) SazbaDPHSnizena=SazbaDPH(dph_snizena2,Pokladna.Datum_ZP) VyssiDPHZaklad=0 NizsiDPHZaklad=0 SnizenaDPHZaklad=0 VyssiDPHDan=0 NizsiDPHDan=0 SnizenaDPHDan=0 BezDPH=0 Celkem=0 CelkemBezDPH=0 DynStr='' NaStrane=0 PocetStran=0 AktStrana=0 MeziSoucet=0 ; ******************************** ; Vlastní zobrazení obsahu dokladu ; ******************************** ;dodelat vyscitani DPH z rozkontu nebo hlaseni na obrazovku o tom, ze to nejde ; Vypocet celkove castky a castek DPH (z rozkontu) VyssiDPHZaklad=Pokladna.Amounts[eet_zakl_dan1]; VyssiDPHDan=Pokladna.Amounts[eet_dan1]; NizsiDPHZaklad=Pokladna.Amounts[eet_zakl_dan2]; NizsiDPHDan=Pokladna.Amounts[eet_dan2]; SnizenaDPHZaklad=Pokladna.Amounts[eet_zakl_dan3]; SnizenaDPHDan=Pokladna.Amounts[eet_dan3]; BezDPH=Pokladna.Amounts[eet_zakl_nepodl_dph]; CelkemBezDPH=NizsiDPHZaklad+VyssiDPHZaklad+BezDPH Celkem=CelkemBezDPH+NizsiDPHDan+VyssiDPHDan LocW3=PoziceRozpisu+16; FontFace(Bold); MustPKP:Boolean=not IsFIK(Pokladna.FIK); RezimStr:String='běžný'; if(Program.EETRezim=1) begin RezimStr='zjednodušený'; MustPKP=true end; if(MustPKP) begin Text(0,PoziceRozpisu+2,TA_Left,'PKP:') FontFace(Normal) XText(10,PoziceRozpisu+2,170,TA_Left,GetPKPSegmentStr(Pokladna.PKP,115,0)) XText(10,PoziceRozpisu+6,170,TA_Left,GetPKPSegmentStr(Pokladna.PKP,115,1)) XText(10,PoziceRozpisu+10,170,TA_Left,GetPKPSegmentStr(Pokladna.PKP,115,2)) end; FontFace(Bold); Text(0,LocW3,TA_Left,'Režim tržby: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,RezimStr) Inc(LocW3,4); if(IsFIK(Pokladna.FIK)) begin FontFace(Bold); Text(0,LocW3,TA_Left,'FIK: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,GetFIK(Pokladna.FIK)) Inc(LocW3,4); end; FontFace(Bold); Text(0,LocW3,TA_Left,'BKP: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,GetBKP(Pokladna.BKP)) Inc(LocW3,4); FontFace(Bold); Text(0,LocW3,TA_Left,'Datum a čas transakce: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,StrUTCDate(Pokladna.ReceiptTime,true)+' '+StrUTCTime(Pokladna.ReceiptTime,true,true)) Inc(LocW3,4); FontFace(Bold); Text(0,LocW3,TA_Left,'Provozovna: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,Str(Pokladna.idProvoz)) Inc(LocW3,4); FontFace(Bold); Text(0,LocW3,TA_Left,'Pokladna: ') FontFace(Normal) XText(0,0,160,TA_Left|TA_Relative,Pokladna.idPokl) Inc(LocW3,4); TabPos(PoziceRozpisu+15) LineA(0,TabPos,180,TabPos) LocW3=TabPos if(Program.RezimDPH<>0) begin TabPos=TabPos+1 Text(173,TabPos,TA_Right,Str(CelkemBezDPH,0,2)) TabPos=TabPos+4 Text(173,TabPos,TA_Right,Str(Celkem-CelkemBezDPH,0,2)) TabPos=TabPos+4 Text(173,TabPos,TA_Right,Str(Celkem,0,2)) TabPos=TabPos+4 if(RoundFloat(Pokladna.Castka,-2)<>RoundFloat(Celkem,-2)) begin Text(173,TabPos,TA_Right,Str(Pokladna.Castka-Celkem,0,2)) end; TabPos=TabPos+4 end else begin TabPos=TabPos+17 end FontFace(Normal) if(Program.RezimDPH<>0) begin LocW3=LocW3+1 Text(150,LocW3,TA_Right,'Celkem bez DPH') LocW3=LocW3+4 Text(150,LocW3,TA_Right,'DPH') LocW3=LocW3+4 Text(150,LocW3,TA_Right,'Celkem s DPH') LocW3=LocW3+4 if(RoundFloat(Pokladna.Castka,-2)<>RoundFloat(Celkem,-2)) begin Text(150,LocW3,TA_Right,'Zaokrouhlení') end; end else begin LocW3=LocW3+13 end TabPos=TabPos+2 Pen(0,0.7) Brush(UserBrush) BoxA(123,TabPos,173,TabPos+10) Brush(NullBrush) FontSize(6) FontFace(Bold) if(Pokladna.CastkaM<>0) Text(118,TabPos+1.5,TA_RIGHT,'Celkem uhrazeno:'); else Text(118,TabPos,TA_RIGHT,'Celkem uhrazeno:'); FontFace(Bold) FontSize(7) if(Pokladna.CastkaM<>0) begin Text(170,TabPos+1.5,TA_RIGHT,Str(Pokladna.CastkaM,0,2)+' '+NumToCCC(Pokladna.Mena)) FontFace(Normal) FontSize(3.5) Text(5,TabPos-2,TA_LEFT,'Převod na '+Program.Mena+': '+Str(Pokladna.Castka,0,2)) Text(5,TabPos+1.5,TA_LEFT,'Kurz: '+Str(Pokladna.Castka/Pokladna.CastkaM,0,2)) end else Text(169,TabPos+1.5,TA_RIGHT,Str(Pokladna.Castka,0,2)+' '+Program.Mena) FontSize(3) FontFace(Normal) LocStr='' LocD=Round(Frac(Pokladna.Castka)*100) if(LocD<>0) begin LocStr=NumToWord(LocD,False,True) if(LocD=1) LocStr=LocStr+' haléř' else if(LocD<5) LocStr=LocStr+' haléře' else LocStr=LocStr+' haléřů' end; LocStr=NumToWord(Pokladna.Castka,True,False)+' '+Program.Mena+' '+LocStr FontFace(Normal) if(Pokladna.CastkaM<>0) begin FontSize(3.5) Text(5,TabPos+7,TA_LEFT,'Slovy: '+LocStr) end else begin FontSize(3) Text(118,TabPos+7,TA_RIGHT,'Slovy: '+LocStr) end TabPos=TabPos+12 FontSize(3) Pen(0,0.1) LineA(85,TabPos+13,125,TabPos+13) LineA(140,TabPos+13,180,TabPos+13) Text(105,TabPos+14,TA_Center,'Razítko a podpis odběratele') Text(160,TabPos+14,TA_Center,'Razítko a podpis dodavatele') if(Program.RezimDPH<>0) begin LocB=0; if(BezDPH<>0) Inc(LocB) if(SnizenaDPHZaklad<>0) Inc(LocB) if(NizsiDPHZaklad<>0) Inc(LocB) if(VyssiDPHZaklad<>0) Inc(LocB) if(LocB<>0) begin if(LocB=4) LocOfs=-5; LocSize=(LocB+1)*5 Pen(0,0.5) BoxA(0,TabPos+LocOfs,75,TabPos+LocOfs+LocSize) Brush(UserBrush) BoxA(0,TabPos+LocOfs,25,TabPos+LocOfs+LocSize) BoxA(0,TabPos+LocOfs,75,TabPos+LocOfs+5) Brush(NullBrush) Pen(0,0.2) LinesA(0,TabPos+5+LocOfs,75,TabPos+LocOfs+5,0,5,LocB) LinesA(25,TabPos+LocOfs,25,TabPos+LocOfs+LocSize,25,0,2) Text(12.5,TabPos+LocOfs+1,TA_CENTER,'Sazba DPH') Text(37.5,TabPos+LocOfs+1,TA_CENTER,'Základ v '+Program.Mena) Text(62.5,TabPos+LocOfs+1,TA_CENTER,'DPH v '+Program.Mena) LocPos=6+LocOfs if(BezDPH<>0) begin Text(12.5,TabPos+LocPos,TA_CENTER,'0 %') Text(48,TabPos+LocPos,TA_Right,Str(BezDPH,0,2)) Text(62.5,TabPos+LocPos,TA_Center,'×') Inc(LocPos,5); end if(SnizenaDPHZaklad<>0) begin Text(12.5,TabPos+LocPos,TA_CENTER,SazbaDPHSnizena+' %') Text(48,TabPos+LocPos,TA_Right,Str(SnizenaDPHZaklad,0,2)) Text(73,TabPos+LocPos,TA_Right,Str(SnizenaDPHDan,0,2)) Inc(LocPos,5); end if(NizsiDPHZaklad<>0) begin Text(12.5,TabPos+LocPos,TA_CENTER,SazbaDPHNizsi+' %') Text(48,TabPos+LocPos,TA_Right,Str(NizsiDPHZaklad,0,2)) Text(73,TabPos+LocPos,TA_Right,Str(NizsiDPHDan,0,2)) Inc(LocPos,5); end if(VyssiDPHZaklad<>0) begin Text(12.5,TabPos+LocPos,TA_CENTER,SazbaDPHVyssi+' %') Text(48,TabPos+LocPos,TA_Right,Str(VyssiDPHZaklad,0,2)) Text(73,TabPos+LocPos,TA_Right,Str(VyssiDPHDan,0,2)) Inc(LocPos,5); end end end LocBo=LocW2