Witam, Można podstawić swoją fakturę pdf bez robienia żadnych difów itp. Tworzymy wtyczkę w której dodajemy class LMSMYversionInvoice extends LMSInvoice { ..... } robimy composera.
następnie w konfiguracji invoice.pdf_type zmieniamy na Myversion
Działa bez żadnych difów itp. Jako wzór będzie oryginalna klasa faktury.
W dniu 14.12.2020, pon o godzinie 12∶26 +0100, użytkownik Marek Adamski napisał:
Witam.
To co podajesz to jest po raz kolejny modyfikacja źródeł. Tak diffem ale jest, o tym za chwilę. Odnosząc się do tworzenia faktur sądzę że znalazłem niedopatrzenie ale może się mylę. W pliku tcpdf.php jest odniesienie do Logo która ma się pojawić na fakturze jednak zmienna K_PATH_IMAGES jest w oryginale definiowana w osobnym pliku autoconfig który tutaj nie jest wczytywany zatem proponuję zmianę tak aby logo było czytane z miejsca które jest wskazane w opisie. W moim przypadku dla logo o równych bokach rozmiar 50 okazał się za duży gdyż wchodził w przestrzeń wystawiającego dlatego zmiana na 38:
--- tcpdf-org.php 2020-12-11 17:36:35.000000000 +0100 +++ tcpdf.php 2020-12-12 22:48:26.793112838 +0100 @@ -42,9 +42,9 @@ public function Header() { /* insert your own logo in lib/tcpdf/images/logo.png */
- $image_file = K_PATH_IMAGES . 'logo.png';
- $image_file = 'lib/tcpdf/images/logo.png';
if (file_exists($image_file)) {
- $this->Image($image_file, 13, 10, 50, '', 'PNG', '',
'T', false, 300, '', false, false, 0, false, false, false);
- $this->Image($image_file, 13, 10, 38, '', 'PNG', '',
'T', false, 300, '', false, false, 0, false, false, false); } }
Analizując plik LMSDocuments.php można dojść do wniosku iż wybranie zawartości faktury odbywa się w oparciu o podany plik przez użytkownika bądź o wcześniej zdefiniowane standardy co widać w tym fragmencie: public function Draw($data) { parent::Draw($data); if (isset($this->data['invoice'])) { $template = ConfigHelper::getConfig('invoices.cnote_template_file'); } else { $template = ConfigHelper::getConfig('invoices.template_file'); } switch ($template) { case "standard": $this->invoice_body_standard(); break; case "FT-0100": $this->invoice_body_ft0100(); break; }
Zatem, według mnie, nie ma potrzeby wprowadzania żadnej modyfikacji plików LMS tylko trzeba dojść do tego jak powinna wyglądać zawartość pliku template_file .php Nie stety nigdzie nie natrafiłem chociażby na jakikolwiek wzór dlatego pojawiła się moja prośba. Być może taka zawartość jest w LMS+ ale szczerze mówiąc kwota roczna jest dość spora jak na nasze potrzeby. Zatem zostaje albo samemu dojść albo może jest ktoś kto rozpracował to i odsprzeda swój szablon za jakąś rozsądna kwotę. W razie czego proszę o kontakt prv.
W Twoim liście datowanym sobota, 12 grudnia 2020 (12:02:16) można przeczytać:
Diff :)
-class LMSTcpdfInvoice extends LMSInvoice +class LMSTcpdfsaInvoice extends LMSInvoice
sob., 12 gru 2020 o 12:00 Przemysław Kudyba zlyzwierz@gmail.com napisał(a):
Nie wiem, czy dobrze zrozumiałem, ale chciałbyś mieć szablon FV, którego nie nadpisywałaby aktualizacja LMS-a.
Można to ogarnąć bardzo prosto dla FV :)
Jest tam w kodzie takie coś:
LMSManagers/LMSFinanceManager.php:
if ($type == 'pdf') { $pdf_type = ConfigHelper::getConfig('invoices.pdf_type', 'tcpdf'); $pdf_type = ucwords($pdf_type); $classname = 'LMS' . $pdf_type . 'Invoice'; Wystarczy zmienną pdf_type (z poziomu uiconfig->invoices) z tcpdf zmienić na tcpdfsa.
Potem w lib/LMSDocuments cp LMSTcpdfInvoice.php LMSTcpdfSaInvoice.php i w LMSTcpdfSaInvoice.php zrobić:
--- LMSTcpdfSaInvoice.php 2020-12-12 11:58:05.450908840 +0100 +++ LMSTcpdfInvoice.php 2020-11-23 17:51:28.000000000 +0100 @@ -24,7 +24,7 @@ * $Id$ */ -class LMSTcpdfsaInvoice extends LMSInvoice +class LMSTcpdfInvoice extends LMSInvoice { const TCPDF_FONT = 'liberationsans'; potem composer update i voila :)
Dla innych szablonów nie próbowałem.
sob., 12 gru 2020 o 09:45 Andrzej Banach andzio@net-komp.net.pl napisał(a):
invoice.html
W dniu 12.12.2020 o 02:19, Marek Adamski pisze:
Witaj Tomasz,
Chcę wykorzystać opcję w LMS: invoices template_file invoices type pdf
Jeżeli dobrze rozumiem to po ustawieniu type = pdf a template_file
= rachunek.php to plik rachunek.php będzie generował mi własny obraz dokumentu w pdf.
Chcę zrobić rachunek.php aby zamiast napisu faktura pojawiał się
napis rachunek.
Wiem że mogę przerobić odpowiednie pliki kodu LMS albo tłumaczenia
ale przy każdej aktualizacji pliki mogą zostać nadpisane albo nastąpić w nich zmiany.
Dlatego też wolę zrobić plik rachunek.php umieszczony w templates
aby przypadkiem moje zmiany nie zostały nadpisane z aktualizacją, jednak nie mam pojęcia jak taki plik powinien wyglądać. Próbowałem coś robić ale za każdym razem powstawał pusty dokument.
Przydał by się jakiś przykładowy plik.
W Twoim liście datowanym sobota, 12 grudnia 2020 (00:57:38) można
przeczytać:
W dniu 12.12.2020 00:39, Marek Adamski napisał(a):
Witaj Marek,
Witaj Tomasz ;-)
To może chociaż jak powinien wyglądać szablon.php dla faktury
pdf, bez
zawartości. Próbuję to zrobić ale nie mam pojęcia jak się za to zabrać. Jak powinien wyglądać początek i koniec pliku bez tabel i całej
reszty?
Skoro nikt nie odpowiedział to albo nikt nie miał czasu, albo nikt
nie zrozumiał Twojego
pytania. Co chcesz uzyskać - wyizolować jakiś fragment kodu
generującego wygląd faktury w PDF
bez jakichś specyficznych fragmentów? Opisz bardziej precyzyjnie
;-)
lms mailing list lms@lists.lms.org.pl https://lists.lms.org.pl/mailman/listinfo/lms
-- Pozdrowienia, **************************** * Marek (SirAdams) Adamski * * LMS: 25 * * http://www.siradams.com/%C2%A0* * GG:14747 * * Linux user:#253788 * **************************** _______________________________________________ lms mailing list lms@lists.lms.org.pl https://lists.lms.org.pl/mailman/listinfo/lms