Ciao a tutti.
La soluzione di Codencode è ok, infatti dovrebbe essere quella standard di PS (non capisco quella doppia query...)
Mi devo scusare per la mia soluzione della specifica 926 perchè ho riportato male nel post, ma ormai la vecchiaia avanza inesorabile e non faccio bene neanche un "copia e incolla" dal mio sorgente.
Infatti ho incollato dopo la parentesi anzichè prima!!!
Invece di
$number = '(SELECT `invoice_number`
FROM (
SELECT MAX(`invoice_number`) + 1 AS `invoice_number`
FROM `'._DB_PREFIX_.'orders` ) WHERE year(invoice_date) = year(current_date)
tmp )';
la query doveva essere :
$number = '(SELECT `invoice_number`
FROM (
SELECT MAX(`invoice_number`) + 1 AS `invoice_number`
FROM `'._DB_PREFIX_.'orders` WHERE year(invoice_date) = year(current_date))
tmp )';
...quasi non si vede la differenza vero?
Anche io però preferisco la soluzione più pulita di Codencode che richiama:
$number = Order::getLastInvoiceNumber() + 1;
Per quanto riguarda il prefisso, è vero, viene messo solo nella scheda ordine e al momento di generare il pdf, ma non nel DB (almeno credo), quindi se viene cambiato succede che chiunque faccia un download di una fattura dell'anno precedente si ritrova anche il nuovo prefisso.
Basterebbe che lo aggiungessero nel DB Orders oppure dove preferiscono gli sviluppatori cugini francesi. ;-)
***se non fosse un campo "int" lo avrei aggiornato insieme al nr.fattura nell' invoice_number ...
Salute a tutti!