Jump to content

Udfordring Med Fakturagenerering


kmaimann

Recommended Posts

Halløj! (og godt nytår!)
 
Jeg har en udfordring med min PrestaShop (1.6.0.9) i forhold til at generere korrekte fakturaer. Tror jeg :). Efter et par timer på Google og forums rundt omkring, så er det i hvert fald den diagnose jeg selv kan stille.
 
Alt fungerer egentlig glat indtil jeg skal håndtere ordren backend. Her går det galt, når jeg skal ændre ordrens status og generere en faktura. Problemet er 2-delt, men jeg mistænker dem for at have behov for den samme medicin:
 
Problem 1:
Når jeg vil ændre ordrestatus til eksempelvis "Afsendt" eller "Klar til afhentning", får jeg følgende fejl:
 
[PrestaShopDatabaseException] 
You can't specify target table 'ps_order_invoice' for update in FROM clause
 
UPDATE `ps_order_invoice` SET number =(SELECT new_number FROM (SELECT (MAX(`number`) + 1) AS new_number
FROM `ps_order_invoice`) AS result) WHERE `id_order_invoice` = 23
 
at line 635 in file classes/db/Db.php
 
... og så en masse underpunkter.
 
Problem 2:
Når jeg vil downloade fakturaen, så er alle Fakturanumre 0000000 - også selvom jeg i Ordrer -> Faktura har sat maskineriet til at starte fra 10001. Da jeg gjorde det, så var den næste ordre helt perfekt. Jeg åbnede en flaske vin og tænkte, at den var hjemme - men næste testordre var fejlen tilbage.
 
 
Min umiddelbare tanke er, at systemet ikke kan generere korrekte fakturanumre - måske på grund af en fejl i SQLen. Fordi den ikke kan generere et korrekt nummer, opstår fejlen. Og PrestaShop sætter fakturanummeret til 0000000. Er dette korrekt, og I så fald hvodan kan jeg løse det?
 
Alt godt.

Link to comment
Share on other sites

PrestaShop kan godt genere korrekte fakturanumre, så det var måske mere interessant at få at vide hvordan fejlen er opstået?

 

Har du tjekket denne tråd: https://www.prestashop.com/forums/topic/493410-error-on-order-status-change/?

 

Det er en relativt ny shop, så sandheden er at jeg ikke er sikker på det nogensinde har virket :).

 

Jeg googlede mig frem til tråden ja, og det er nogenlunde samme problemstilling (i hvert fald ift., at fejlmeddelelsen kun kommer i Debug-mode). Jeg prøvede at kigge lidt på Order.php, men tror min PS-version er en anden end den de har leget med - koden er i hvert fald ikke identisk. Jeg fandt det sted i min kode, hvor det passede ind. Så fik jeg denne fejl:

 

[PrestaShopDatabaseException]

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id_order_invoice` = 26' at line 1
 
UPDATE `ps_order_invoice` SET number = WHERE `id_order_invoice` = 26
 
 
Det ved jeg ikke om er bedre eller værre. Issuet var det samme ift fakturagenereringen.
Link to comment
Share on other sites

UPDATE `ps_order_invoice` SET number = WHERE `id_order_invoice` = 26

Dette SQL-udtryk har et ufuldstændigt SET statement. Har du fjernet udtrykket i parentesen?

 

Jeg ville nok prøve at opgradere til den nyeste version 1.6.1.3 via 1-Click Upgrade, for at se om det ikke kunne afhjælpe problemet.

Husk at tage backup etc. ;-)

Link to comment
Share on other sites

Problem 1

 

Prøv denne forespørgsel:

Try this query:

UPDATE `ps_order_invoice`
SET number = (
    SELECT max_number FROM
    (
        SELECT MAX(`number`) + 1 AS max_number FROM `ps_order_invoice`
    ) AS temp_table
)
WHERE `id_order_invoice` = 23
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...