TechnickSysAid / mask4greece

Ελληνικό Πρότυπο Τιμολογίου
GNU General Public License v3.0
5 stars 4 forks source link

Fatal error: Uncaught Error: Call to undefined method pdf_moon_mask4greece::getHeightForQRInvoice() #36

Closed moumour closed 9 months ago

moumour commented 9 months ago

Στην έκδοση 4.0.2 και 4.0.1 στην δημιουργία του pdf βγάζει error Fatal error: Uncaught Error: Call to undefined method pdf_moon_mask4greece::getHeightForQRInvoice() in page ../custom/mask4greece/core/modules/facture/doc/pdf_moon_mask4greece.modules.php:530 Στην 4.0.0 λειτουργεί. Linux, php 7.4, dolibarr 17.x το έχω δοκιμάσει και σε dolibarr 16.x και λαμβάνω το ίδιο μύνημα.

sonikf commented 9 months ago

Καλησπερα @moumour και sorry για την ταλαιπωρία Εν όψει της 19 που έχει αρκετές αλλαγές για τα Ελληνικά δεδομένα πάτησα σε νεώτερο κώδικα Αν δεν μπορείς να αναβαθμίσεις στην 18

Άλλαξε στο pdf_moon_mask4greece.modules.php από $tab_height = $this->page_hauteur - $this->tab_top - $this->heightforfooter - $this->heightforfreetext - $this->getHeightForQRInvoice(1, $object, $langs); σε $tab_height = $this->page_hauteur - $this->tab_top - $this->heightforfooter - $this->heightforfreetext; και αν σπάσει κάτι άλλο επειδη δεν μπορώ να δοκιμάσω σε 16 και 17... Χρησιμοποίησε την 4.0.0 και άλλαξε από


                // You can add more thing under header here, if you increase $extra_under_address_shift too.
                $extra_under_address_shift = 0;
                $qrcodestring = '';
                if (!empty($conf->global->INVOICE_ADD_ZATCA_QR_CODE)) {
                    $qrcodestring = $object->buildZATCAQRString();
                } elseif (!empty($conf->global->INVOICE_ADD_SWISS_QR_CODE)) {
                    $qrcodestring = $object->buildSwitzerlandQRString();
                }
                if ($qrcodestring) {
                    $qrcodecolor = array('25', '25', '25');
                    // set style for QR-code
                    $styleQr = array(
                        'border' => false,
                        'padding' => 0,
                        'fgcolor' => $qrcodecolor,
                        'bgcolor' => false, //array(255,255,255)
                        'module_width' => 1, // width of a single module in points
                        'module_height' => 1 // height of a single module in points
                    );
                    $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $this->marge_gauche, $this->tab_top - 5, 25, 25, $styleQr, 'N');
                    $extra_under_address_shift += 25;
                }

σε

                // You can add more thing under header here, if you increase $extra_under_address_shift too.
                $extra_under_address_shift = 0;
                $qrcodestring = '';
                if (getDolGlobalString('INVOICE_ADD_ZATCA_QR_CODE')) {
                    $qrcodestring = $object->buildZATCAQRString();
                } elseif (getDolGlobalString('INVOICE_ADD_SWISS_QR_CODE') == '1') {
                    $qrcodestring = $object->buildSwitzerlandQRString();
                } elseif (getDolGlobalString('INVOICE_ADD_GREEK_QR_CODE')) {
                    $extrafields = new ExtraFields($this->db);
                    $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
                    $object->fetch($rowid);
                    $object->fetch_optionals($rowid,$extralabels);
                    if (!empty($url)) {
                    $doc->loadHTML($url);
                    $aTags = $doc->getElementsByTagName('a');
                    $qrcodestring = $aTags->item(0)->getAttribute('href');
                    } else {
                    $qrcodestring = $object->array_options['options_mydata_reply_QR'];
                    }
                }
                if ($qrcodestring) {
                    $qrcodecolor = array('25', '25', '25');
                    // set style for QR-code
                    $styleQr = array(
                        'border' => false,
                        'padding' => 0,
                        'fgcolor' => $qrcodecolor,
                        'bgcolor' => false, //array(255,255,255)
                        'module_width' => 1, // width of a single module in points
                        'module_height' => 1 // height of a single module in points
                    );
                    if (getDolGlobalString('INVOICE_ADD_GREEK_QR_CODE') == '1') {
                        if (getDolGlobalInt('INVOICE_SHOW_SHIPPING_ADDRESS')) {
                            $pdf->SetAlpha(0.5);
                            $t_posx = 105;
                            $t_posy = 40 * $pdf->getPageHeight() / 150;                 
                            $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $t_posx, $t_posy, 19, 19, $styleQr, 'N');
                            $pdf->SetAlpha(1);
                        } elseif (!getDolGlobalInt('INVOICE_SHOW_SHIPPING_ADDRESS')) {
                            $pdf->SetAlpha(0.5);
                            $t_posx = 80;
                            $t_posy = 36 * $pdf->getPageHeight() / 150;                 
                            $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $t_posx, $t_posy, 19, 19, $styleQr, 'N');
                            $pdf->SetAlpha(1);}
                            $extra_under_address_shift += 5;
                    } elseif (getDolGlobalString('INVOICE_ADD_GREEK_QR_CODE') == '2') {
                        $pdf->SetAlpha(0.5);
                        $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $this->marge_gauche, 245, 200, 19, $styleQr, 'N');
                        $pdf->SetXY(55,275);
                        $pdf->SetAlpha(1);
                    }
                }

Για να έχεις το QR

moumour commented 9 months ago

Το έκανα upgrade σε 18 και δουλεύει.