; DDT objednavky. Tiskne se jako rezervace ze skladu i s carkovym kodem ; verze z 9.9.2003 ; Autor: WinDUO Team Name('Rezervace zboží') FileName('ObjPrij2.WNS') Designed('Obj_Pri') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Rezervace zboží ze skladu') DeclareRec('Program') DeclareRec('ObjednavkaPrijata') DeclareRec('KeyObjednavkaPrijata2') DeclareRec('Objednavka') DeclareRec('KeyObjednavka2') GetBindRec('ObjednavkaPrijata') ;**************************************************************************** ; Deklarace globálních proměnných pro podprogram tisku řádků faktury ;**************************************************************************** Global Max :Array[1..12] of Byte Global Sloupce :Word Global OdRadku :Word Global PocetRadku :Word Global Strana :Word Global VseVytisteno :Boolean Global FaktYPozice :Real ;y-souřadnice začátku textu ve fakture ; ;;nutno zadat hodnoty: Global SirkaFontuText:Real=0.9 ;1.3 Global VyskaFontuText:Real=4 ;velikost pisma textu faktury Global FaktXPozice :Real=7 ;x-vzdalenost leveho okraje Global FaktSirka :Real=166 ;x-vzdalenost praveho okraje Global FaktOdstup :Real=4.5 ;y-vzdalenost mezi radky textu Global JeFaktura :Boolean=True ;podle nastaveni tiskne ser.cisla nebo ne Global TiskObeOznaceni:Boolean=False ;tiskne dodavatelovo i odběratelovo označení StatusWindowInCall(False) ;**************************************************************************** ;Deklarace lokálních promennych ;**************************************************************************** ;nutno zadat hodnoty: FaktYPozice1:Real=94 ;y-souřadnice začátku textu ve fakture FaktYPozice2:Real=15 ;y-souřadnice začátku textu v priloze YTabDPH:Real=250 ;y-souřadnice pozice pro tabulku rozpisu DPH ;MaxLines:Word=20 ;Maximalni pocet radku ve fakture ;MaxLinesPril:Word=48 ;Maximalni pocet radku v priloze MaxLines:Word=Program.MaxRadF ; pokud přebírá tato nastavení z nastavení faktury MaxLinesPril:Word=Program.MaxRadP ; pokud přebírá tato nastavení z nastavení faktury LocS:String Hlavicka:ObjednavkaPrijata LocL:LongInt LocStr:String LocStr2:String TiskDPH:Boolean TiskDPH=(Program.RezimDPH<>0) TiskLogo:Boolean=True xLogoStart:Real=15 ; x-souradnice leveho horniho roku LOGO yLogoStart:Real=12 ; y-souradnice leveho horniho roku LOGO xLogoVel:Real=40 ; x velikost logo yLogoVel:Real=40 ; y velikost logo YPosunLogo:Real=0 ; y-posun textů kvůli logo Text1:String Text2:String Text3:String Text4:String NazevDokladu:String[50] NazevDokladu='Rezervace' ;DlgFollowMouse(True) ;{definice uvodniho dialogu} ;DefDialog('Zadání údajů',462,248) ;DlgShade(-1,'',4,27,453,148) ;DlgStatic(-1,' Volba údajů',3,5,84) ; ;DlgStatic(-1,'&Název dokladu:',10,30,125) ;DlgEdit(101,NazevDokladu,135,28,318,,50) ;DlgOnLineHelp(101,'Např.: Objednávka,Potvrzení objednávky,Nabídka,Nabídka k Vaší poptávce...') ;DlgCheckBox(102,TiskLogo,10,48,110,,'Tisknout logo') ;DlgOnLineHelp(102,'Pokud máte v nastavení faktury uvedeno logo, může být vytisknuto i do tohoto dopisu') ; ;DlgStatic(-1,'&Text do spodní části objednávky:',230,58,215) ;DlgEdit(201,Text1,10,76,443,,240) ;DlgOnLineHelp(201,'Text, který bude vytištěn ve spodní části objednávky') ;DlgEdit(202,Text2,10,100,443,,240) ;DlgOnLineHelp(202,'Text, který bude vytištěn ve spodní části objednávky') ;DlgEdit(203,Text3,10,124,443,,240) ;DlgOnLineHelp(203,'Text, který bude vytištěn ve spodní části objednávky') ;DlgEdit(204,Text4,10,148,443,,240) ;DlgOnLineHelp(204,'Text, který bude vytištěn ve spodní části objednávky') ; ; ;;DlgCombo(102,NazevDokladu,135,30,240,200,50,CBS_DropDownList,'Objednávka','Potvrzení objednávky','Nabídka') ;;DlgCombo(102,NazevDokladu,135,30,240,200,50,CBS_Simple,' ','Objednávka','Potvrzení objednávky','Nabídka') ;;DlgOnLineHelp(102,'Rozsah tisku objednávek') ;DlgButton(id_OK,'OK',290,180); ;DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') ;DlgButton(id_Cancel,'Zpět',373,180); ;DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') ; ; ;Result:Integer=DlgExecute(True) ;if(Result<>id_OK) ; Halt if(TiskLogo) YPosunLogo=15 ; y-posun textů kvůli logo InitStatus(GetCountBindRec('ObjednavkaPrijata'),'Vytvářím doklad','k objednávce č.'+ObjednavkaPrijata.Doklad); ;**************************************************************************** ; Tisk rámečků a textů ;**************************************************************************** FontFace(Bold) FontSize(7) if(Length(Trim(ObjednavkaPrijata.Objednavka))<>0) Text(188,2,TA_RIGHT,NazevDokladu) PEN(0,0.7) ROUNDBoxA(90,24,183,63,5,5); adresa odběratele Brush(UserBrush) BoxA(5,54+YPosunLogo,90,62+YPosunLogo);číslo objednavky u dodavatele (vlevo) if(Length(Trim(ObjednavkaPrijata.Objednavka))<>0) begin BoxA(80,10,188,17);číslo objednavky vpravo nahore LineA(120,17,120,24); mala svisla čara uprostřed end if(ObjednavkaPrijata.ObjFlags&1<>0); je-li odfajfkovana rezervace ze skladu, tiskne, jinak nic BoxA(150,66,183,73);datum v barevnem ramečku ROUNDBoxA(55,226,188,240,4,4); cena za dodavku celkem Brush(NullBrush) PEN(0,0.4) BoxA(5,10,188,92); velký rameček kolem adres BoxA(5,245,188,275);velký rámečedk dole PEN(0,0.2) LineA(10,24+YPosunLogo,85,24+YPosunLogo); čara mezi dodavatel a adresa LineA(95,35,178,35); čara v adrese odběratele ;LineA(10,60.5,85,60.5) LineA(90,60,90,92);svisla čara uprostred nize oddeluje dodav. a odber. ;if(TiskLogo) ; PaintMetaFile(xLogoStart,yLogoStart,xLogoVel,yLogoVel,Program.Logo); ; tisk logo FontFace(Bold) FontSize(3) BarCode(BC_Code39,xLogoStart,yLogoStart,xLogoVel,15,ObjednavkaPrijata.Doklad,True) FontFace(Bold) FontSize(4) Text(41,14+YPosunLogo,TA_RIGHT,'Dodavatel - IČ:') Text(41,18+YPosunLogo,TA_RIGHT,'DIČ:') Text(15,25+YPosunLogo,TA_LEFT,'Adresa:') ;Text(15,56+YPosunLogo,TA_LEFT,'Číslo účtu:') Text(15,56+YPosunLogo,TA_LEFT,'Evidováno pod číslem:') ;Text(15,79-15+YPosunLogo,TA_LEFT,'Příjemce:') Text(15,79,TA_LEFT,'Příjemce:') if(Length(Trim(ObjednavkaPrijata.Objednavka))<>0) Text(84,12,TA_LEFT,'Číslo objednávky odběratele:') else begin FontFace(Bold) FontSize(7) Text(180,12,TA_RIGHT,NazevDokladu) FontFace(Normal) FontSize(4) end Text(121,26,TA_RIGHT,'Odběratel - IČ:') Text(121,30,TA_RIGHT,'DIČ:') FontFace(Bold) if(ObjednavkaPrijata.Vyrizeno<>0) begin Text(100,68,TA_LEFT,'Vyřízeno dne:') Text(100,78,TA_Left,'Vyřídil:') end else begin ;XText(100,68,45,TA_LEFT,'Předpokládané datum vyřízení:') if(ObjednavkaPrijata.ObjFlags&1<>0); je-li odfajfkovana rezervace ze skladu, tiskne, jinak nic begin XText(100,68,45,TA_LEFT,'Rezervováno do konce pracovní doby:') end ;else ;begin ; if(ObjednavkaPrijata.TerminDo<>0) ; XText(100,68,45,TA_LEFT,'Vyřídit nejpozději do:') ;end if((ObjednavkaPrijata.TerminDo<>ObjednavkaPrijata.TerminPo)and(ObjednavkaPrijata.TerminPo<>0)) begin Text(100,78,TA_LEFT,'Datum vyřízení nejdříve:') end end FontSize(4) if(ObjednavkaPrijata.Datum<>0) Text(100,74,TA_LEFT,'Datum objednávky:') if(ObjednavkaPrijata.Platba<>0) Text(100,82,TA_LEFT,'Způsob úhrady:') if(Length(ObjednavkaPrijata.DodaniStr)<>0) Text(100,86,TA_LEFT,'Způsob dodání:') FontFace(Normal) FontSize(3.5) XText(58,235.5,125,TA_LEFT,'Cena je pouze orientační a neobsahuje související poplatky (např. recyklační) a případná zaokrouhlení celkové částky') ClearFontIndex() GetFontIndex(188,Text1) GetFontIndex(188,Text2) GetFontIndex(188,Text3) GetFontIndex(188,Text4) FontIndex() XText(10,209.5,188,TA_Left,Text1) XText(10,213,188,TA_Left,Text2) XText(10,216.5,188,TA_Left,Text3) XText(10,220,188,TA_Left,Text4) FontFace(Bold) FontSize(6) Text(58,230,TA_Left,'Cena za dodávku celkem:') ;FontFace(Normal) ;FontSize(2.8) ;Text(5,240.5,TA_LEFT,SupplString(Str(Program.Penale,0,2),Program.FText)) FontFace(Bold) FontSize(4) if(ObjednavkaPrijata.Vyrizeno=0) Text(90,250,TA_Left,'Vyřizuje:') Text(130,250,TA_Left,'Razítko a podpis:') FontFace(Normal) FontSize(2.5) Text(179.5,275,TA_Right,'Doklad vystaven systémem') FontFace(Normal|Italic) Text(183.4,275,TA_Right,'Win') FontFace(Normal) Text(188,275,TA_Right,'DUO') ;**************************************************************************** ; Tisk hlavickovych udaju ;**************************************************************************** FontFace(Bold|Italic) FontSize(4) Text(43,14+YPosunLogo,TA_LEFT,NULL(Program.ICO,8,True)) Text(43,18+YPosunLogo,TA_LEFT,Program.DIC) FontSize(5) ClearFontIndex() GetFontIndex(60,Program.Firma) GetFontIndex(60,Program.Rozsireni) GetFontIndex(60,Program.Ulice) GetFontIndex(60,Program.Mesto) FontIndex() Text(24,29+YPosunLogo,TA_LEFT,Program.Firma) Text(24,33+YPosunLogo,TA_LEFT,Program.Rozsireni) Text(24,37+YPosunLogo,TA_LEFT,Program.Ulice) Text(9,41+YPosunLogo,TA_LEFT,Program.PSC) Text(24,41+YPosunLogo,TA_LEFT,Program.Mesto) FontSize(2.5) Text(8,46+YPosunLogo,TA_LEFT,Program.FaktSpecText[1]) Text(8,48.5+YPosunLogo,TA_LEFT,Program.FaktSpecText[2]) FontSize(5) Text(180,11,TA_RIGHT,ObjednavkaPrijata.Objednavka); FontSize(4) if((not Program.HideICO) or (ObjednavkaPrijata.ICO>=Program.HideICOLess)) Text(123,26,TA_LEFT,NULL(ObjednavkaPrijata.ICO,8,True)) Text(123,30,TA_LEFT,ObjednavkaPrijata.DIC) FontSize(5) ClearFontIndex() GetFontIndex(70,ObjednavkaPrijata.Odberatel) GetFontIndex(70,ObjednavkaPrijata.Rozsireni) GetFontIndex(70,ObjednavkaPrijata.Ulice) GetFontIndex(70,ObjednavkaPrijata.Mesto) GetFontIndex(70,ObjednavkaPrijata.PSC) FontIndex() Text(105,36,TA_LEFT,ObjednavkaPrijata.Odberatel) Text(105,41,TA_LEFT,ObjednavkaPrijata.Rozsireni) Text(105,46,TA_LEFT,ObjednavkaPrijata.Ulice) Text(105,51,TA_LEFT,ObjednavkaPrijata.Mesto) Text(105,56,TA_LEFT,ObjednavkaPrijata.PSC) ;FontFace(Normal) FontFace(Bold|Italic) FontSize(4) Text(84,56+YPosunLogo,TA_Right,ObjednavkaPrijata.Doklad) FontFace(Bold|Italic) FontSize(3) if(Length(ObjednavkaPrijata.PrijemceNazev)>0) begin ClearFontIndex() GetFontIndex(55,ObjednavkaPrijata.PrijemceNazev) GetFontIndex(55,ObjednavkaPrijata.PrijemceRozs) FontIndex() if(Length(ObjednavkaPrijata.PrijemceRozs)>0) begin Text(32,80,TA_LEFT,ObjednavkaPrijata.PrijemceNazev) Text(32,83,TA_LEFT,ObjednavkaPrijata.PrijemceRozs) end else Text(32,80.6,TA_LEFT,ObjednavkaPrijata.PrijemceNazev) LocStr='' if(Length(ObjednavkaPrijata.PrijemceUlice)>0) LocStr=LocStr+ObjednavkaPrijata.PrijemceUlice+', ' if(Length(ObjednavkaPrijata.PrijemcePSC)>0) LocStr=LocStr+ObjednavkaPrijata.PrijemcePSC+' ' if(Length(ObjednavkaPrijata.PrijemceMesto)>0) LocStr=LocStr+ObjednavkaPrijata.PrijemceMesto+', ' if(Length(ObjednavkaPrijata.PrijemceStat)>0) LocStr=LocStr+ObjednavkaPrijata.PrijemceStat+', ' if(Length(LocStr)>3) begin if(CompareStr(', ',Copy(LocStr,Length(LocStr)-1,2))) LocStr=Copy(LocStr,1,Length(LocStr)-2) end XText(7,83+3,81,TA_LEFT,LocStr) end FontFace(Bold|Italic) FontSize(4.5) if(ObjednavkaPrijata.Vyrizeno<>0) begin Text(180,67,TA_RIGHT,StrDate(ObjednavkaPrijata.Vyrizeno)) FontSize(3.5) Text(180,78,TA_RIGHT,ObjednavkaPrijata.Vyridil) end else begin if(ObjednavkaPrijata.ObjFlags&1<>0); je-li odfajfkovana rezervace ze skladu, tiskne, jinak nic Text(180,67,TA_RIGHT,StrDate(ObjednavkaPrijata.TerminDo)) if((ObjednavkaPrijata.TerminDo<>ObjednavkaPrijata.TerminPo)and(ObjednavkaPrijata.TerminDo<>0)) begin FontSize(3.5) Text(180,78,TA_RIGHT,StrDate(ObjednavkaPrijata.TerminPo)) end end FontSize(3.5) Text(180,74,TA_RIGHT,StrDate(ObjednavkaPrijata.Datum)) ;datum vystaveni if(ObjednavkaPrijata.Platba<>0) Text(180,82,TA_Right,GetString(5500-ObjednavkaPrijata.Platba)) Text(180,86,TA_Right,ObjednavkaPrijata.DodaniStr) FontFace(Italic) LocS='' if(ObjednavkaPrijata.Vyrizeno=0) LocS=ObjednavkaPrijata.Vyridil IF(Length(Program.Telefon)<>0) begin IF(Length(LocS)=0) begin LocS=LocS+'telefon: '+Program.Telefon end else LocS=LocS+', telefon: '+Program.Telefon end Text(90,255,TA_Left,LocS) IF(Length(Program.email)<>0) begin LocS='email: '+Program.email Text(90,258,TA_Left,LocS) end FontFace(Normal) FontSize(3) TabPos=YTabDPH ; y-souřadnice pozice pro tabulku rozpisu DPH 250 if(TiskDPH) begin Pen(0,0.5) BoxA(10,TabPos,85,TabPos+20) Brush(UserBrush) BoxA(10,TabPos,35,TabPos+20) BoxA(10,TabPos,85,TabPos+5) Brush(NullBrush) Pen(0,0.2) LinesA(10,TabPos+5,85,TabPos+5,0,5,3) LinesA(35,TabPos,35,TabPos+20,25,0,2) Text(22.5,TabPos+1,TA_CENTER,'Sazba daně') Text(47.5,TabPos+1,TA_CENTER,'Základ (v '+Program.Mena+')') Text(72.5,TabPos+1,TA_CENTER,'Daň (v '+Program.Mena+')') end PoziceStr:Real=TabPos+20 TabPos=200 FontSize(7) FontFace(Bold|Italic) If(Hlavicka.Mena=0) begin CenaCelkem:Real CenaCelkem=RoundFloat(ObjednavkaPrijata.Castka,-1) Text(171,229,TA_RIGHT,StrFinanc(CenaCelkem,2,True)) Text(173,229,TA_LEFT,Program.Mena) end else begin Text(171,229,TA_RIGHT,StrFinanc(ObjednavkaPrijata.CastkaM,2,True)); {nepouzito} Text(173,229,TA_LEFT,NumToCCC(Hlavicka.FMena)); {nepouzito} end FontFace(Normal) FontSize(3.8) Text(10,221,TA_LEFT,'Počet skladových položek celkem: '+Str(ObjednavkaPrijata.SklPolozek))) ;**************************************************************************** ; Vytisteni dokladu ;**************************************************************************** OdRadku=1 Strana=0 PocetRadku=MaxLines FaktYPozice=FaktYPozice1 Global SazbaDPHNizsi:Byte=SazbaDPH(False,ObjednavkaPrijata.Datum) Global SazbaDPHVyssi:Byte=SazbaDPH(True,ObjednavkaPrijata.Datum) Global SumaVyssiDPHDan:Real Global SumaVyssiDPHZaklad:Real Global SumaNizsiDPHDan:Real Global SumaNizsiDPHZaklad:Real Global SumaBezDPH:Real CallDDT('ObjProc.DDT'); ;tisk tabulky DPH if(TiskDPH) begin if(SumaBezDPH<>0) begin Text(22.5,YTabDPH+6,TA_CENTER,'0 %') Text(58,YTabDPH+6,TA_Right,Str(SumaBezDPH,0,2)) Text(83,YTabDPH+6,TA_Right,'------') end if(SumaNizsiDPHZaklad<>0) begin Text(22.5,YTabDPH+11,TA_CENTER,Str(SazbaDPHNizsi)+' %') Text(58,YTabDPH+11,TA_Right,Str(SumaNizsiDPHZaklad,0,2)) SumaNizsiDPHDan=SumaNizsiDPHZaklad*SazbaDPHNizsi/100 SumaNizsiDPHDan=RoundFloat(Int((SumaNizsiDPHDan+0.09)*10)/10,-2) Text(83,YTabDPH+11,TA_Right,Str(SumaNizsiDPHDan,0,2)) end if(SumaVyssiDPHZaklad<>0) begin Text(22.5,YTabDPH+16,TA_CENTER,Str(SazbaDPHVyssi)+' %') Text(58,YTabDPH+16,TA_Right,Str(SumaVyssiDPHZaklad,0,2)) SumaVyssiDPHDan=SumaVyssiDPHZaklad*SazbaDPHVyssi/100 SumaVyssiDPHDan=RoundFloat(Int((SumaVyssiDPHDan+0.09)*10)/10,-2) Text(83,YTabDPH+16,TA_Right,Str(SumaVyssiDPHDan,0,2)) end end ;**************************************************************************** ; Vytisteni prilohy ;**************************************************************************** ;spocitani poctu priloh: PocetStran:Word=Strana Global OdRadkuPocet:Word=OdRadku if(not VseVytisteno) begin Global VseVytistenoPocet:Boolean=False While(not VseVytistenoPocet) begin SetStatus(OdRadku); PocetRadku=MaxLinesPril Inc(PocetStran) FaktYPozice=FaktYPozice2 CallDDT('ObjPoc.DDT'); end; end poprve:Boolean=True While(not VseVytisteno) begin SetStatus(OdRadku); IF((PocetStran>0)and(poprve)) begin Text(7,PoziceStr,TA_Left,'Strana '+Str(Strana+1,2,0)); Text(186,PoziceStr,TA_RIGHT,'Počet stran přílohy, která je nedílnou součástí tohoto dokladu: '+Str(PocetStran,2,0)); end else begin Text(175,244+10,TA_RIGHT,'Příloha strana '+Str(Strana,2,0)); end poprve=False NextPage FontFace(Bold|Italic) FontSize(5) if(Length(Trim(ObjednavkaPrijata.Objednavka))<>0) begin Text(175,4,TA_RIGHT,'Příloha k objednávce') FontSize(4) Text(175,9,TA_RIGHT,'Číslo objednávky odběratele: '+ObjednavkaPrijata.Objednavka); end FontSize(4) Text(7,9,TA_Left,'U dodavatele evidováno pod číslem: '+ObjednavkaPrijata.Doklad); FontSize(3.5) PocetRadku=MaxLinesPril Inc(Strana) FaktYPozice=FaktYPozice2 CallDDT('ObjProc.DDT'); end; If(Strana>=1) begin Text(175,244+10,TA_RIGHT,'Příloha strana '+Str(Strana,2,0)); end SetStatusMax; END