Jump to content

[SZUKAM] Paragon czy faktura dla PS 1.7 oraz PS 8


jeti20

Recommended Posts

  • 3 months later...
  • 9 months later...
19 hours ago, cypispga said:

Witam 

na czystym świeżo instalowanym sklepie ściągnięty moduł ze strony  mam:

 

qaoKrde.jpg

 

@querez Tak więc potrzebuję więcej informacji aby być w stanie powiedzieć co nie gra.

 

@cypispga zwracam honor. Sprawdziłem dokładnie. Okazało się że problem tkwi w błędnie działającym module DPD  😕
Twój moduł działa bez problemowo. Pozdrawiam i sorry za zamieszanie. 

Link to comment
Share on other sites

  • 4 months later...
  • 8 months later...

Hej,

Mam szybkie pytanie: po zainstalowaniu i przetestowaniu wygląda to tak, że pomimo wyświetlanej informacji po stronie admina, że został wybrany paragon, mimo wszystko generuje się automatycznie faktura. Czy da się to jakoś zmienić, żeby przy wybranym paragonie generował się jakiś inny dokument (paragon)?

Wiem, że taki dokument nie będzie fiskalny, więc muszę go sobie potem wydrukować na fiskalnej, natomiast jeśli dokument faktury tak czy siak się generuje i mam po prostu zignorować, to księgowość będzie czepiała, że numeracja faktur ma dziury, więc jest podstawa dla urzędu skarbowego do przeprowadzenie kontroli...

Dlatego idealnie byłoby, gdyby zakup z zaznaczonym paragonem powodował wygenerowanie jakiegoś innego rodzaju dokumentu.

Edited by przemko (see edit history)
Link to comment
Share on other sites

Dzięki za informację.

W sumie szkoda, bo rozwiązałoby trochę problemów. Może ktoś w przyszłości dorobi ten mały fragment i moduł byłby w pełni funkcjonalny.

Mam jeszcze kilka przemyśleń w związku z tym problemem faktur i paragonów dla kogoś, kto chciałby się w przyszłości zająć tematem :)
Na chwilę obecną po zainstalowaniu modułu w tej wersji, która jest: po stronie klienta w historii zamówień widać link do dokumentu (faktury), więc jeśli ktoś wybrał fakturę, to ok. Natomiast jeśli ktoś wybrał paragon i go dostanie wraz z przesyłką (z kasy fiskalnej), a w zakładce swojego profilu widzi automatycznie wygenerowany dokument faktury, to robi się z tego problem prawny. Jeśli to trafi do jakiegoś urzędu skarbowego, to można mieć problem, że się daje klientowi zarówno fakturę jak i paragon. Trzeba więc albo zablokować możliwość ściągania przez klienta faktury ze strony albo nazwać fakturę "potwierdzeniem operacji" albo "rachunkiem", żeby się nie narażać. Wtedy jednak faktury trzeba gdzieś generować oddzielnym oprogramowaniem (przepisując dane), co daje szansę pomyłek i wymaga pracy.


Rozdzielenie tych dwóch dokumentów byłoby o tyle pomocne, że można by było po prostu wydrukować same faktury z Presty i przekazać do zaksięgowania i nie trzeba by było "odcedzać" faktur, które były tak naprawdę paragonami, bo paragony byłyby innym rodzajem dokumentów.

Link to comment
Share on other sites

  • 5 months later...

 

On 3/25/2019 at 8:21 PM, cypispga said:

Witam 

na czystym świeżo instalowanym sklepie ściągnięty moduł ze strony  mam:

6IMgOnG.jpg

qaoKrde.jpg

 

@querez Tak więc potrzebuję więcej informacji aby być w stanie powiedzieć co nie gra.

 

Cześć,

@cypispga@cypispga znalazłem błąd, który może generować ten problem.

Przykładowo u mnie presta jest zainstalowany w innej lokalizacji, niż główny folder domeny. W save.js jest linia:

$.post("/modules/paragonfaktura/ajax.php", { value: value, id_cart: id_cart }, function(data){

należy zmienić ją na:

$.post("modules/paragonfaktura/ajax.php", { value: value, id_cart: id_cart }, function(data){

/ na początku powoduje, że moduł nie potrafi znaleźć pliku ajax.php, ponieważ szuka w złej lokalizacji - konsola zwraca 404 (domena.pl/modules/paragonfaktura/ajax.php zamiast ścieżka_instalacji_presta/modules/paragonfaktura/ajax.php). Po usunięciu slasha działa bez problemu. Dołączam poprawiony save.js.

 

On 4/20/2020 at 1:21 PM, przemko said:

Dzięki za informację.

W sumie szkoda, bo rozwiązałoby trochę problemów. Może ktoś w przyszłości dorobi ten mały fragment i moduł byłby w pełni funkcjonalny.

Mam jeszcze kilka przemyśleń w związku z tym problemem faktur i paragonów dla kogoś, kto chciałby się w przyszłości zająć tematem :)
Na chwilę obecną po zainstalowaniu modułu w tej wersji, która jest: po stronie klienta w historii zamówień widać link do dokumentu (faktury), więc jeśli ktoś wybrał fakturę, to ok. Natomiast jeśli ktoś wybrał paragon i go dostanie wraz z przesyłką (z kasy fiskalnej), a w zakładce swojego profilu widzi automatycznie wygenerowany dokument faktury, to robi się z tego problem prawny. Jeśli to trafi do jakiegoś urzędu skarbowego, to można mieć problem, że się daje klientowi zarówno fakturę jak i paragon. Trzeba więc albo zablokować możliwość ściągania przez klienta faktury ze strony albo nazwać fakturę "potwierdzeniem operacji" albo "rachunkiem", żeby się nie narażać. Wtedy jednak faktury trzeba gdzieś generować oddzielnym oprogramowaniem (przepisując dane), co daje szansę pomyłek i wymaga pracy.


Rozdzielenie tych dwóch dokumentów byłoby o tyle pomocne, że można by było po prostu wydrukować same faktury z Presty i przekazać do zaksięgowania i nie trzeba by było "odcedzać" faktur, które były tak naprawdę paragonami, bo paragony byłyby innym rodzajem dokumentów.

@przemko

Ja rozwiązałem ten problem tak - wyłączyłem automatyczne faktury, a faktury do zamówień generuję i wysyłam przy realizacji zamówienia. Ma to dodatkowy plus, że nikt nie dostanie faktury bez opłaconego zamówienia :) Przy większej liczbie zamówień może to być czasochłonne, ale jak ma się na tyle duży sklep, żeby to sprawiało problem to można poszukać rozwiązania dedykowanego.

save.js

Link to comment
Share on other sites

  • 4 months later...

Hej

@cypispga @cypispga Wraz z aktualizacją do 1.7.7.0 moduł przestał działać w BackOffice z racji przeprojektowanej strony zamówienia.

Najpierw trzeba zmienić wersję w __construct, żeby moduł się zaktualizował i dodał nowe hooki do bazy danych.

Żeby to naprawić trzeba dodać:

&& $this->registerHook('displayAdminOrderTabContent');

po linii

&& $this->registerHook('displayBelowInvoiceAdress')

Następnie w dowolnym miejscu należy dodać kod Hooka:

public function hookdisplayAdminOrderContentOrder($params){
		$out='';
		$order = new Order($params['order']->id);
		$cart_id = Order::getCartIdStatic($params['id_order']);
		$choice =  Db::getInstance()->getRow('SELECT document_type FROM `'._DB_PREFIX_.'invoice_bill` WHERE id_cart = '.$cart_id);

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

 

Należy zwrócić uwagę, że zmianie uległ array $params => aby wyciągnąć numer ID zamówienia należy użyć:

$params['id_order']

zamiast $params['order']->id

Gotowy efekt wygląda jak w załączniku.

 

Jeżeli ktoś będzie potrzebował pomocy to chętnie pomogę :)

image.png.35fb975a936c3766e42a930f6f358f1c.png

Edited by CLEVER DESIGN (see edit history)
Link to comment
Share on other sites

Dzień dobry!

Prestashop 1.7.7.2 - u mnie wygląda to tak:

image.png.6f3ced3777e179fbf2ce94507ad4ed6b.png

Z wcześniejszych postów wnioskuję, że w tym miejscu miał być wyświetlony rodzaj dokumentu.

I jeszcze jedno pytanie - czy zaznaczenie w module opcji "Send document info mail" powinno dołączyć informację o wybranym rodzaju dokumentu do maila z informacją o nowym zamówieniu? Bo u mnie nie dodało. Czy jest możliwe żeby taka informacja pokazała się w mailu order_conf?

Krzysiek

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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;

 

Edited by Moteke (see edit history)
Link to comment
Share on other sites

Moteke - Serdecznie dziękuję za wytłumaczenie i za podany kod.

Teraz działa jak należy a dodatkowo wyświetlony jest NIP dla faktury :)

Cypis, mam nadzieję, że nie będziesz miał nic przeciwko takiej przeróbce ;) Twój moduł jest świetny i co więcej, pracuje w nowych wersjach Presty.

Gdyby jeszcze dorobić opcję - możliwość dodania informacji o wybranym typie dokumentu do wysyłanych maili, np. order_conf to byłoby chyba wszystko :) 

Ale rozumiem, że to wymaga pracy i czasu.

Dziękuję za pomoc i za ten moduł.

Link to comment
Share on other sites

  • 8 months later...

Świetny moduł. Dzięki za włożoną pracę. Na wersji presty 1.7.7 przy module OPC "The Checkout" niestety ignoruje wybór klienta i zawsze przyjmuje domyślny wybór w ustawieniach modułu. Po wejściu na stronę zamówienia wpisuje do bazy domyślne ustawienie i później już to się nie zmienia. Zmiana ścieżki do ajax.php nie pomaga.

Może ktoś miał podobny problem przy tym module OPC.

Z góry dzięki za pomoc.

Edited by xet (see edit history)
Link to comment
Share on other sites

  • 2 months later...
  • 6 months later...

Witam. Niestety najnowsza wersja mi się nie pobiera. Informacja o wybranym dokumencie także się nie pojawia. Czy robię coś źle?

On 2/16/2021 at 9:38 PM, cypispga said:

Staram się w miarę możliwości aktualizować wersję i są one dostępne pod linkiem https://cypis.net/blog/posts/prestashop-modul-paragon-faktura-dla-prestashop-17-do-pobrania

 

Link to comment
Share on other sites

  • 3 months later...

@cypispga może na stronie pobrań dopisuj datę aktualizacji załączonych plików, to pozwoli pobierającym zweryfikować, czy błędy, o których jest tutaj wspomniane są sprzed aktualizacji, czy aktualizacja już je poprawiła.

I jeszcze jedna prośba, czy w tam, gdzie w zamówieniu (panel admina) pojawia się Order ID i Cart ID, może się pojawiać też Order number? 

Edited by feronek (see edit history)
Link to comment
Share on other sites

@Moteke mógłbyś dokładnie opisać w którymi miejscu i co należy zmienić na Twój kod, żeby to działało? 

Próbowałam zmienić kod w liniach 95, 96, 97

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;;

na to, co Ty dodałeś powyżej i po instalacji tego zmienionego modułu w panelu admina w Zamówieniach (konkretne zamówienie) w pozycji Dokument sprzedaży, bez względu na to, co wybiorę czy fakturę czy paragon w trakcie realizacji zamówienia, pojawia mi się paragon i pole, w którym w module bez zmian pojawia się info: Order id: 13 / Cart id: 22 mam puste.

Myślę, że coś robię źle ale nie wiem co.

Link to comment
Share on other sites

  • 3 weeks later...
On 11/17/2022 at 11:06 AM, feronek said:

@Moteke mógłbyś dokładnie opisać w którymi miejscu i co należy zmienić na Twój kod, żeby to działało? 

Próbowałam zmienić kod w liniach 95, 96, 97

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;;

na to, co Ty dodałeś powyżej i po instalacji tego zmienionego modułu w panelu admina w Zamówieniach (konkretne zamówienie) w pozycji Dokument sprzedaży, bez względu na to, co wybiorę czy fakturę czy paragon w trakcie realizacji zamówienia, pojawia mi się paragon i pole, w którym w module bez zmian pojawia się info: Order id: 13 / Cart id: 22 mam puste.

Myślę, że coś robię źle ale nie wiem co.

@feronek Ciężko mi powiedzieć, gdzie konkretnie jest u Ciebie problem. Jeśli chcesz to mogę Ci w wiadmości podesłać mój cały plik paragonfaktura.php i podpowiedzieć jak to tam działa.

Link to comment
Share on other sites

  • 2 weeks later...

Cześć, u mnie przy realizacji zamówienia pojawia się błąd

ContextErrorException
Notice: Undefined variable: customer.

Bez różnicy, który typ dokumentu jest domyślny / wybrany. Wersja modułu dla 1.7.7 - Wersja Presty 1.7.8.7. Jakieś pomysły, co to może być?

@cypispga @cypispga

image.png

Edited by Chrisu (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...
  • 10 months later...

Witam, czy jest opcja aby ta wersja od Cypisa działała na prestashop 8x? Podczas instalacji pokazuje się błąd: 

Instalacja modułu paragonfaktura nie powiodła się. SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'ps_invoice_bill' already exists

Spróbuj ponownie

Link to comment
Share on other sites

  • endriu107 changed the title to [SZUKAM] Paragon czy faktura dla PS 1.7 oraz PS 8

Witam.

Czy istnieje darmowy moduł wyboru faktura-paragon do presty w wersji 8? Na naszej preście w starej wersji korzystałem z modułu od cypis.net i był genialny oraz bezproblemowy, niestety w wersji 8 nie działa.

Pozdrawiam.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...