#1 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Generátor faktur – Nette šablony + mPDF
Třeba se to někomu hodí. Hned pro začátek upozorňuji, že je to psané dost na míru, spousta věcí není úplně ideálně a rozhodně by mohla být zpracována lépe. Potřeboval jsem podobnou komponentu vytvořit co možná nejrychleji, tak podle toho vypadá.
Každopádně je funkční.
HTML šablona je příšerný bastl. Byla v div layoutu, ale konverze, bohužel, nefungovala tak jak měla…takže pokud budete podle šablony zobrazovat fakturu na webu, bylo by záhodno ji přepsat ;)
Jinak si upravujte, opravujte, dodělávejte ,předělávejte, připomínkujte a navrhujte jak je libo. Jen mě prosím nekamenujte, děkuji ;)
Jen pro připomenutí, je potřeba knihovna mPDF pro generování PDFka z HTML.
Výsledná faktura v tomto provedení vypadá následovně.
Zdrojáky ke stažení na stránce Invoice control v repozitáři komponent a pluginů. (InvoicePresenter.php je jen ukázkový)
Tak to je vše (snad jsem nic nezapomněl ;) Snad to k něčemu a někomu bude ;)
Editoval Warden (21. 5. 2009 11:28)
#2 před 3 lety
- satano
- Nový člen

- Registrovaný: 18. 5. 2008
- Příspěvky: 6
Re: Generátor faktur – Nette šablony + mPDF
Fúúú. Komponenta OK. Ale nešlo by zdrojáky niekde zazipované zavesiť a na fórum len niečo zaujímavé/dôležité vypichnúť? To myslím teraz všeobecne do budúcnosti aj pre iné komponenty. Mať taký obrovský kus zdrojáku v browseri nieje bohviečo.
#3 před 3 lety
- o5
- Člen

- Registrovaný: 2. 1. 2009
- Příspěvky: 156
Re: Generátor faktur – Nette šablony + mPDF
vsak Warden to rad da i do http://addons.nette.org/cs ..vid? :D
Editoval o5 (11. 5. 2009 23:07)
#4 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Věřte tomu nebo ne, ale bylo to v plánu..oboje :) Akorát už nebyly síly. Takže nějaký archiv vytvořím a šoupnu ho sem a pokud se zadaří, tak i do extras to plácnu :)
Hotovo…link pro stažení je nahoře a v extras to je taktéž.
Editoval Warden (12. 5. 2009 18:22)
#5 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Proběhlo trošku úprav…polymorfismus: InvoiceItem a InvoiceParticipant jsou nyní pod rozhraním + přidané nějaké metody a menší úpravy.
#6 před 3 lety
- na1k
- Nette guru

- Registrovaný: 18. 2. 2008
- Příspěvky: 277
Re: Generátor faktur – Nette šablony + mPDF
Super komponenta, přesně tohle jsem vymýšlel a najednou mrknu do extras a on už to někdo udělal, díky za ni :)
Jenom dvě poznámečky : v přiloženém ukázkovém presenteru je stále
funkce zřejmě z dřívější verze, teď nevím její název, ale je třeba
ji nahradit funkcí setDateOfVatRevenueRecognition
a protože jsem sám potřeboval fakturu namísto zobrazení uložit do souboru, hledal jsem v (bohužel nedostatečně zdokumentovaném) kódu a tady je mé řešení, tak třeba někomu ušetří těch pět minut :)
<?php
$invoice->exportToPdf($mpdf, './faktura.pdf', 'F');
?>
#7 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Hehe…on to někdo používá :) Máš pravdu, opravím.
To ukládání do souboru…to jsem nijak extra nepopisoval, protože to je v dokumentaci mPDF…možná bych tam mohl dopsat, že parametry exportToPdf jsou stejné jako parametry mPDF->Output()…to asi není jasné.
#8 před 3 lety
- na1k
- Nette guru

- Registrovaný: 18. 2. 2008
- Příspěvky: 277
Re: Generátor faktur – Nette šablony + mPDF
Ano, používá a líbí se :) Nerad znova vynalézám kolo, obzvlášť když už je k dispozici takové pěkně kulaté jako to tvé ;)
S tou dokumentací je to tak, že ani mPDF nemá funkci řádně zdokumentovanou. Po rychlém nahlédnutí do jejího kódu je sice všechno zřejmé, ale zase ten luxus napovídání :))
A ještě mě napadla drobnost (kdyby jsi snad vydával další verzi, já už jsem si to ohnul) – forma úhrady nemusí být vždy „převodem“. Nejsem účetní, ale určitě je možnost platit i bezhotovostně nebo nějak jinak. Tudíž by bylo fajn mít setter i na tuhle vlastnost.
Ps. opravdu má být http://www.profitux.cz/skladiste/ veřejně přístupné? Já jsem se celkem bavil nad tím co všechno jsem tam našel :-D
#9 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
S tím setterem…to bylo jen o lenosti, vím o tom, ale bylo to dělané na míru systému, kde jiný způsob platby nebyl možný :-) Nicméně v příští verzi to pořeším.
Jinak to, že se komponenta používá, mi dělá jen radost :-)
PS: to být opravdu nemělo, přestože se to už moc nevyužívá, fatální bug…fixed…díky…viník je potrestán :)
Editoval Warden (10. 8. 2009 1:24)
#10 před 3 lety
- ic
- Nette guru

- Registrovaný: 28. 3. 2009
- Příspěvky: 306
Re: Generátor faktur – Nette šablony + mPDF
Faktura je super… taky už jsem jednu sestavil a vytiskl, další ale budou následovat. → Moc dík.
Možná by bodla úprava kdy by se při nezadání některého ze 3 symbolů (konstantní, …) tento text vůbec nezobrazil… asi lepší než 0.
Není předtištěné razítko a podpis v rozporu se zákonem (nevím jakým)? Slyšel jsem že například Celní úřad doklady s předtištěným podpisem vrací a chce podpis vlastnoruční.
PS: Škoda toho skladu štěňata byla roztomilá
#11 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Vytištěné razítko s podpisem je dle mých informací zcela v pořádku a v souladu se zákonem, jinak nikomu nic nebrání v tom, aby img tag odstranil ;-) Na VS, KS atd se v další revizi ještě podívám. Stejný problém jako s „platbou převodem“ – děláno přesně na míru, ale v tom by neměl být problém.
PS: štěňata mohu dodat i jinak :-D
#12 před 3 lety
- sin
- Člen

- Registrovaný: 29. 7. 2009
- Příspěvky: 85
Re: Generátor faktur – Nette šablony + mPDF
Ahoj,
zatim jsem na to koukal jen okrajově ale dost se mi to líbí :)
jenom bych to potreboval rovnou odesilat na mail bez ukladani a nasel jsem ze
kdyz dam u exportToPdf parametr ‚S‘ tak by to nejak melo jit ale nemate
s tim nekdo zkusenosti ? Diky sin
#13 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Metoda exportToPdf() má druhý a třetí parametr jako metoda
Output() samotného mPdf, dokumentace
k metodě.
#14 před 3 lety
- sin
- Člen

- Registrovaný: 29. 7. 2009
- Příspěvky: 85
Re: Generátor faktur – Nette šablony + mPDF
At zkousim jakekoliv parametry output() nebo ukazku tak mi to vypise
Output has already been sent from the script – PDF file generation
aborted.*
a nic mi to nikam neulozí ani neposle. Nevíte co s tim? Funguje to i na win
nebo jenom na linuxu?
#15 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Nic jiného než ukládání jsem nepotřeboval, takže ani nezkoušel. Každopádně nevidím důvod, proč by to na win nemělo fungovat.
Není jendodušší vygenerovat → do souboru → soubor poslat → soubor smazat? Pokud to nejde jednoduše tak jak chceš.
#16 před 3 lety
- sin
- Člen

- Registrovaný: 29. 7. 2009
- Příspěvky: 85
Re: Generátor faktur – Nette šablony + mPDF
No ja mam problem ze mi nejde to vygenerovat ani do souboru. Ze mi to vypise jenom ten text co jsem psal ale soubor se nikam neulozil…
#17 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Tak nejspíš posíláš na výstup něco ještě před vygenerováním…co BOM u UTF8 souborů? Nebo bílé znaky za ukončovací značkou PHP? Případně něco jiného? Nevím, proč by to jinak nešlo…jinak na win nemám možnost testovat…
#18 před 3 lety
- sin
- Člen

- Registrovaný: 29. 7. 2009
- Příspěvky: 85
Re: Generátor faktur – Nette šablony + mPDF
Tak jsem musel mit nekde nejakou divnou chybu. cele jsem to smazal a nakopiroval znovu a ted uz to ukládá normálně na localhostu. Díky a já se s tím jdu seznamovat dál
#19 před 3 lety
- Kenn
- Člen

- Registrovaný: 27. 1. 2009
- Příspěvky: 130
Re: Generátor faktur – Nette šablony + mPDF
Vyřešil někdo to posílání vygenerovaného PDF jako přílohu e-mailu klasickou cestou a ne uložení souboru/poslání/mazání? Používám Nette/Mail a pořád mi hlásí neexistující soubor.
Vygenerování s pouhým zobrazením funguje pěkně.
http://OpiciNoviny.cz – čtení nejen pro opice :P
#20 před 3 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Zkus si pohrát s parametrem 'S' u metody
exportToPdf(), viz. dokumentace.
Ale nezkoušel jsem, nepotřebuju mailovat.
#21 před 2 lety
- despiq
- Nette guru

- Registrovaný: 24. 11. 2009
- Příspěvky: 354
Re: Generátor faktur – Nette šablony + mPDF
mam podezreni ze tak jak je ukazka na tenhle addon tak je papirove spatne
pri zaokrouhlovani konecne castky se musi ta cast o kterou bylo zaokrouhleno pricist nebo odecist z dane, takze celkovou cenu a dph by si mel kazdy spocitat sam jeste pred generovanim a pak uz by se u celkove ceny zaokrouhlovat nemelo
#22 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Jak budu mít chvilku, mrknu na to.
#23 před 2 lety
- jakubroz
- Člen

- Registrovaný: 6. 8. 2009
- Příspěvky: 17
Re: Generátor faktur – Nette šablony + mPDF
Zdravím,
mám problémek :)
Jakmile chci vygenerovat fakturu, hází mi nette chybu Filter CurlyBracketsFilter::invoke: Callback ‚CurlyBracketsFilter::invoke‘ is not callable, jak se to dá opravit?
Filtr jsem zkoušel registrovat v Basu, ale nešlo to.
Předem diky za pomoc.
#24 před 2 lety
- Honza Marek
- Moderator

- Registrovaný: 31. 3. 2007
- Příspěvky: 1632
Re: Generátor faktur – Nette šablony + mPDF
Ten filtr je přejmenovaný na LatteFilter a registruje se automaticky. Takže najdi, kde se pokouší v té komponentě registrovat a zruš to.
#25 před 2 lety
- jakubroz
- Člen

- Registrovaný: 6. 8. 2009
- Příspěvky: 17
Re: Generátor faktur – Nette šablony + mPDF
Paráda, už to jde. Ale tedkon když to udělalo fakturu, tak nejde diakritika uvnitř, nějaká rada? :)
#26 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Přesně jak píše Honza, já si to napíšu do todo ;-)
EDIT: jinak je to v metodě generate() třídy
InvoiceControl
Editoval Ondřej Brejla (9. 4. 2010 20:43)
#27 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
jakubroz napsal(a):
Paráda, už to jde. Ale tedkon když to udělalo fakturu, tak nejde diakritika uvnitř, nějaká rada? :)
Zkus si pohrát s kódováním při vytváření objektu $mpdf = new
mPDF('iso-8859-2');, zkus utf-8 (když jsem to zkoušel já, fungovalo
pouze iso a to s utf-8 soubory), případně si zkontroluj, že máš soubory
v utf-8.
#28 před 2 lety
- despiq
- Nette guru

- Registrovaný: 24. 11. 2009
- Příspěvky: 354
Re: Generátor faktur – Nette šablony + mPDF
abych poopravil svuj drivejsi post, pri zaokrouhleni konecne castky se musi
zaokrouhleni uvest na fakturu, dale take primo v ukazce
zbozi bez dph je 756.30×2 = 1512.60, avsak na fakture je napsano 1512,61
halere se mohou zdat nedulezite ale finacni urad na to tak nenahlizi, nechci
komponentu hanit, jen mam sve spatne zkusenosti se spatnymi fakturami a tak bych
chtel aby bylo vse v poradku
#29 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
To není žádné hanění, to je konstruktivní. To je v pořádku. Ta komponenta byla dělána podle fakturací ve firmě a podle systému, který faktury generoval. Já nejsem ekonom, takže v těchto detailech se nevyznám. Pokud by si mi poslal typovou fakturu se všemi náležitostmi, velice bych to ocenil. Díky.
#30 před 2 lety
- despiq
- Nette guru

- Registrovaný: 24. 11. 2009
- Příspěvky: 354
Re: Generátor faktur – Nette šablony + mPDF
http://www.faktury.cz/…i-faktur.php
tady je to hezky popsano, ale stejne to neni dostatecne, az to znovu proberu
s poradcem tak to sem napisu, at nebluduju
#31 před 2 lety
- Honza Kuchař
- Moderator

- Registrovaný: 12. 8. 2007
- Příspěvky: 1588
Re: Generátor faktur – Nette šablony + mPDF
K těm háčkům a čárkám: zkus to napasovat na PdfResponse. (doplňky)
Tam s ěščřžýáíé nemám žádný problém.
#32 před 2 lety
- michalh
- Člen

- Registrovaný: 4. 6. 2008
- Příspěvky: 26
Re: Generátor faktur – Nette šablony + mPDF
despiq napsal(a):
http://www.faktury.cz/…i-faktur.php
tady je to hezky popsano, ale stejne to neni dostatecne, az to znovu proberu s poradcem tak to sem napisu, at nebluduju
Náležitosti faktur popisuje také nový formát isdoc ve své hypertextové dokumentaci
#33 před 2 lety
- jakubroz
- Člen

- Registrovaný: 6. 8. 2009
- Příspěvky: 17
Re: Generátor faktur – Nette šablony + mPDF
Nevíte jak nastavím do jakého adresáře se faktura uloží? Mě se pořád dává rovnou do document_root. :(
Předem díky.
#34 před 2 lety
- iguana007
- Nette guru

- Registrovaný: 3. 11. 2009
- Příspěvky: 485
Re: Generátor faktur – Nette šablony + mPDF
jakubroz napsal(a):
Nevíte jak nastavím do jakého adresáře se faktura uloží? Mě se pořád dává rovnou do document_root. :(
Předem díky.
Tuto komponentu jsem ještě nepoužil, ale stačí si přečíst toto vlákno a hned u 6. příspěvku najdeš tento kód:
$invoice->exportToPdf($mpdf, './faktura.pdf', 'F');
z tohoto kousku kódu:
'./faktura.pdf'
je to imho jasné. Zkusil bych napsat třeba:
$invoice->exportToPdf($mpdf, './faktury/faktura.pdf', 'F');
Omne Principium Grave
#35 před 2 lety
- jakubroz
- Člen

- Registrovaný: 6. 8. 2009
- Příspěvky: 17
Re: Generátor faktur – Nette šablony + mPDF
Ano, to jsem zkoušel. Tohle nejde ;)
#36 před 2 lety
#37 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
jakubroz napsal(a):
Ano, to jsem zkoušel. Tohle nejde ;)
Což je zajímavé, mně ano :-) Práva k zápisu?
#38 před 2 lety
- Lawondyss
- Člen

- Registrovaný: 19. 4. 2010
- Příspěvky: 74
Re: Generátor faktur – Nette šablony + mPDF
Mám problém s pamětí. Když zkusím fakturu vygenerovat, vyhodí mi to fatal error:
Allowed memory size of 16777216 bytes exhausted (tried to allocate 1572864 bytes)
Začalo to chodit až při navýšení paměti na 128MB :-(
Stáhl jsem si verzi z githubu a mPDF 4.5
Editoval Lawondyss (26. 8. 2010 22:25)
#39 před 2 lety
#40 před 2 lety
- wotaen
- Člen

- Registrovaný: 11. 5. 2009
- Příspěvky: 83
Re: Generátor faktur – Nette šablony + mPDF
despiq napsal(a):
to je celkem logicky, do 16MB se mi nevejde ani moje aplikace natož pak mpdf který je nekompromisně narocny, 128MB nic extra, ja mam nastaveno pres giga
Taky používám mPDF a taky to začne fungovat až při 512M…asi ten mpdf budu muset uplne odstranit z RobotLoadera a includovat to ručně…
#41 před 2 lety
- rokerkony
- Člen

- Registrovaný: 29. 7. 2008
- Příspěvky: 137
Re: Generátor faktur – Nette šablony + mPDF
no já mám teda memory_limit=32M a jede to v pohodě… :-/
#42 před 2 lety
- iguana007
- Nette guru

- Registrovaný: 3. 11. 2009
- Příspěvky: 485
Re: Generátor faktur – Nette šablony + mPDF
JJ taky se mi to nějak nezdá … používám mPDF u addonu PDFResponse a tolik paměti to nepotřebuje. mPDF už používám několik let i v jiných notNette projektech a nikdy problém nebyl. Je to hlavně o optimalizaci vstupních dat, která lezou do toho PDF parseru. Ale o tom více na mPDF webu, je tam řada tipů jak tu RAM ušetřit a zároveň zrychlit generování PDF.
Omne Principium Grave
#43 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
Přesně jak říkají kolegové…žádné problémy s tím nemám, hledej tedy problém někde u sebe…s tím ti moc nepomohu :-/
#44 před 2 lety
- Ondřej Brejla
- Nette guru

- Registrovaný: 20. 4. 2008
- Příspěvky: 721
Re: Generátor faktur – Nette šablony + mPDF
wotaen napsal(a):
despiq napsal(a):
to je celkem logicky, do 16MB se mi nevejde ani moje aplikace natož pak mpdf který je nekompromisně narocny, 128MB nic extra, ja mam nastaveno pres giga
Taky používám mPDF a taky to začne fungovat až při 512M…asi ten mpdf budu muset uplne odstranit z RobotLoadera a includovat to ručně…
Pokud jde o spotřebu paměti při nahrávání
RobotLoaderem…tak to je jasné, samozřejmě mám mPDF v
netterobots.txt jako Disallow…ono je taky dost zbytečné ho
nahrávat, když ho člověk používá opravdu jen občas…
#45 před 2 lety
- wotaen
- Člen

- Registrovaný: 11. 5. 2009
- Příspěvky: 83
Re: Generátor faktur – Nette šablony + mPDF
jj, přesně tohle jsem měl na mysli
Ondřej Brejla napsal(a):
wotaen napsal(a):
despiq napsal(a):
to je celkem logicky, do 16MB se mi nevejde ani moje aplikace natož pak mpdf který je nekompromisně narocny, 128MB nic extra, ja mam nastaveno pres giga
Taky používám mPDF a taky to začne fungovat až při 512M…asi ten mpdf budu muset uplne odstranit z RobotLoadera a includovat to ručně…
Pokud jde o spotřebu paměti při nahrávání
RobotLoaderem…tak to je jasné, samozřejmě mám mPDF vnetterobots.txtjako Disallow…ono je taky dost zbytečné ho nahrávat, když ho člověk používá opravdu jen občas…
#46 před 2 lety
- Lawondyss
- Člen

- Registrovaný: 19. 4. 2010
- Příspěvky: 74
Re: Generátor faktur – Nette šablony + mPDF
No já jsem mPDF zakázal nahrávat RobotLoaderem hned, jak jsem zjistil, že kvůli němu ani nerozjedu web. mPDF includuju ručně až ve chvíli, kdy chci generovat fakturu. A právě v tu chvíli to zkolabuje na nedostatek paměti. xdebug odkazuje na řádek uvnitř mpdf.php, ale kolem něj jsem nic zvláštního nenašel.
Zkusím se kouknout na jeho stránky. Pokud se mi to podaří vyřešit, dám to sem.
Těm co to běhá i s malou pamětí poprosím, aby napsali postup, jakým mPDF využívají. Díky.
#47 před 2 lety
- iguana007
- Nette guru

- Registrovaný: 3. 11. 2009
- Příspěvky: 485
Re: Generátor faktur – Nette šablony + mPDF
Lawondyss napsal(a):
Těm co to běhá i s malou pamětí poprosím, aby napsali postup, jakým mPDF využívají. Díky.
mrkni sem: http://mpdf1.com/…al/index.php?…
Omne Principium Grave
#48 před 2 lety
- rokerkony
- Člen

- Registrovaný: 29. 7. 2008
- Příspěvky: 137
Re: Generátor faktur – Nette šablony + mPDF
aha… tak to taky mám v netterobots.txt :-D a uz o tom ani nevim :-D
#49 před 2 lety
- Lawondyss
- Člen

- Registrovaný: 19. 4. 2010
- Příspěvky: 74
Re: Generátor faktur – Nette šablony + mPDF
Tak na 16MB jsem se sice nedostal, ale 32MB už je dost s velikou rezervou. Optimalizoval jsem vstupní šablonu, ale hlavně jsem použil kompresi (compress.php ve stejném adresáři) skriptu mpdf.php. Nechal jsem pouze funkce pro tabulky a obrázky. Také načtení toho skriptu nechávám až na chvíli, kdy je potřeba.
#50 před 2 lety
- Lawondyss
- Člen

- Registrovaný: 19. 4. 2010
- Příspěvky: 74
Re: Generátor faktur – Nette šablony + mPDF
Tak řeším další situaci. Když umístím generování výstupu faktury
do actionXXX(), aplikace už se nedostane k renderXXX a web tak zůstane viset
na stránce, odkud proběhlo přesměrování.
Napadlo mě, že řešením by bylo, kdyby se faktura otevřela do nového okna,
původní by se přesměrovalo jak má, ale nepodařilo se mi toho dosáhnout.
Máte někdo nějaký nápad?