Jump to content

Edit History

Moteke

Moteke

On 3/4/2021 at 6:38 PM, kape27 said:

Jeżeli w pliku paragonfaktura.php usunę if w funkcji hookdisplayAdminOrderTabContent oraz zmienię to co zwraca funkcja:

czyli ten fragment:

if($choice) {
            $out = "<h3 style='margin-bottom:10px; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";             }    
 return $out.$this->l('Order id').': '.$params['id_order'].' / '.$this->l('Cart id').': '.$cart_id;

zamieniam na:
             $out = "<h3 style='margin-bottom:10px; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";

return $out; 

to moduł wyświetla prawidłowo typ wybranego dokumentu.

Jeżeli zmieniałem tylko to, co zwraca funkcja na:

return $out;

to wtedy nic nie było wyświetlone - nawet błędna zawartość, którą w poprzednim poście zaznaczyłem na czerwono.

ALE! Jako że jestem z programowania zielony jak trawa na wiosnę, nie wiem co sprawdza if i jakie mogą być konsekwencje takiej zmiany

Proszę Szanownych członków forum o pomoc w rozwiązaniu problemu.

Krzysiek

If($choice) sprawdza czy istnieje w bazie wybór użytkownika, którego osoba kupująca dokonuje przy składaniu zamówienia. W przypadku braku takiego wyboru (np. stare zamówienia złożone przed zainstalowaniem modułu nie będą tego miały, bo moduł jeszcze tych danych nie zbierał) moduł aktualnie nie wyświetla niczego (zmienna $out jest pusta) oprócz tych dodatkowych "Order id" i "Cart id" (to co zostało zaznaczone na czerwono).

Usunięcie if($choice) powoduje ustawianie zmiennej $out za każdym razem i w przypadku kiedy zmienna ta jest pusta (brak danych) kolejny if sprawdzający typ dokumentu $choice['document_type']==1 zawsze zwróci wartość 0 i wypisze, że wybrany został paragon. Pomimo, że brak jest takich danych. 

Podsumowując, powyżej zmieniony kod dla starych zamówień zawsze wyświetli "paragon", a dla nowych zadziała prawidłowo.

W swojej modyfikacji modułu dodałem wiadomość dla braku danych w bazie i dodatkowo umieściłem wyświetlany pod typem dokumentu numer NIP. Myślę, że może się to przydać:

if($choice)
	{
	    $out = "<h3 style='margin-bottom:10px;padding: 10px 0; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";
	}
else
    {
	// przypadek braku danych w bazie
		$out = "<h3 style='margin-bottom:10px; padding: 10px 0; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span style='background-color: #c22d23' class='badge rounded badge-info'><strong>Brak danych - sprawdź samodzielnie</strong></span></h3>";
	}

// tylko dla faktury
if($choice['document_type']==1){

	$addressObj = new Address($order->id_address_invoice);

	$out = $out . "<span style='color: #25b9d7'>NIP: ".$addressObj->vat_number."</span>";

}

return $out;

 

Moteke

Moteke

On 3/4/2021 at 6:38 PM, kape27 said:

Jeżeli w pliku paragonfaktura.php usunę if w funkcji hookdisplayAdminOrderTabContent oraz zmienię to co zwraca funkcja:

czyli ten fragment:

if($choice) {
            $out = "<h3 style='margin-bottom:10px; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";             }    
 return $out.$this->l('Order id').': '.$params['id_order'].' / '.$this->l('Cart id').': '.$cart_id;

zamieniam na:
             $out = "<h3 style='margin-bottom:10px; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";

return $out; 

to moduł wyświetla prawidłowo typ wybranego dokumentu.

Jeżeli zmieniałem tylko to, co zwraca funkcja na:

return $out;

to wtedy nic nie było wyświetlone - nawet błędna zawartość, którą w poprzednim poście zaznaczyłem na czerwono.

ALE! Jako że jestem z programowania zielony jak trawa na wiosnę, nie wiem co sprawdza if i jakie mogą być konsekwencje takiej zmiany

Proszę Szanownych członków forum o pomoc w rozwiązaniu problemu.

Krzysiek

If($choice) sprawdza czy istnieje w bazie wybór użytkownika, którego osoba kupująca dokonuje przy składaniu zamówienia. W przypadku braku takiego wyboru (np. stare zamówienia złożone przed zainstalowaniem modułu nie będą tego miały, bo moduł jeszcze tych danych nie zbierał) moduł aktualnie nie wyświetla niczego (zmienna $out jest pusta) oprócz tych dodatkowych "Order id" i "Cart id" (to co zostało zaznaczone na czerwono).

Usunięcie if($choice) powoduje ustawianie zmiennej $out za każdym razem i w przypadku kiedy zmienna ta jest pusta (brak danych) kolejny if sprawdzający typ dokumentu $choice['document_type']==1 zawsze zwróci wartość 0 i wypisze, że wybrany został paragon. Pomimo, że brak jest takich danych. 

Podsumowując, powyżej zmieniony kod dla starych zamówień zawsze wyświetli "paragon", a dla nowych zadziała prawidłowo. W swojej modyfikacji modułu dodałem wiadomość dla braku danych w bazie i dodatkowo umieściłem wyświetlany pod typem dokumentu numer NIP. 

Myślę, że może się to przydać:

if($choice)
	{
	    $out = "<h3 style='margin-bottom:10px;padding: 10px 0; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span class='badge rounded badge-info'><strong>".($choice['document_type']==1?$this->l('Invoice'):$this->l('Bill'))."</strong></span></h3>";
	}
else
    {
	// przypadek braku danych w bazie
		$out = "<h3 style='margin-bottom:10px; padding: 10px 0; border-bottom:1px solid #ccc;'>".$this->l('Sale document').": <span style='background-color: #c22d23' class='badge rounded badge-info'><strong>Brak danych - sprawdź samodzielnie</strong></span></h3>";
	}

// tylko dla faktury
if($choice['document_type']==1){

	$addressObj = new Address($order->id_address_invoice);

	$out = $out . "<span style='color: #25b9d7'>NIP: ".$addressObj->vat_number."</span>";

}

return $out;

 

×
×
  • Create New...