Jump to content

[Gelöst]Auswertung zur den Rechnungen


Kirashi

Recommended Posts

Dazu brauchst du kein Modul, da reicht eine SQL-Abfrage aus, die du im Back Office-Menü Erweiterte Einstellungen findest.

 

Klick hier auf Neu oben rechts, gib einen Namen ein und ins Feld darunter folgende Abfrage:

select oi.`id_order_invoice`, oi.`id_order`, oi.`total_products`, oi.`total_paid_tax_excl`, oi.`total_shipping_tax_excl`, oi.`total_paid_tax_incl`, 
(oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`) as total_vat, 
round(((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`)/oi.`total_paid_tax_excl`)*100, 2) as tax_rate, 
oi.`date_add`, c.`firstname`, c.`lastname` 
from ps_order_invoice oi 
left outer join ps_orders o on oi.`id_order` = o.`id_order` 
left outer join ps_customer c on o.`id_customer` = c.`id_customer` 
order by  oi.`id_order_invoice` ASC

Dann klick auf Speichern.
Falls Prestashop jetzt eine Fehlermeldung ausgibt, dann liegt es daran, dass du vielleicht ein anderes Datenbank-Tabellen-Präfix als da standardmäßige ps_ verwendest. Das wäre dann noch zu korrigieren.

 

Wenn du wieder zur Listenansicht der Abfragen zurückkehrst, hast du nun eine neue Abfrage dauerhaft gespeichert. Hier gibt es rechts die Optionen Exportieren (als Excel-CSV), Ansehen, Bearbeiten und natürlich Löschen.

 

Falls du die letzte Rechnung zuerst haben möchtest, muss es in der Abfrage am Schluss nicht "ASC" sondern "DESC" (descending) heißen.

Link to comment
Share on other sites

Statt: firstname und lastname möchte ich lieber Firma und Ort haben. kann ich das einfach so ändern: 

 

select oi.`id_order_invoice`, oi.`id_order`, oi.`total_products`, oi.`total_paid_tax_excl`, oi.`total_shipping_tax_excl`, oi.`total_paid_tax_incl`,
(oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`) as total_vat,
round(((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`)/oi.`total_paid_tax_excl`)*100, 2) as tax_rate,
oi.`date_add`, c.`company`, c.`place`
from ps_order_invoice oi
left outer join ps_orders o on oi
.`id_order` = o.`id_order`
left outer join ps_customer c on o.`id_customer` = c.`id_customer`
order by oi.`id_order_invoice` ASC

Link to comment
Share on other sites

:D  nein, so einfach geht das nicht. Vor allem müssen es tatsächlich vorhandene Datenbankfelder sein - ein Feld namens "place" gibt es gar nicht. Und du musst in der SQL-Anweisung mitteilen, wo sie sich genau befinden.

 

Ich habe die Abfrage deshalb ein bisschen erweitert:

select oi.`id_order_invoice`, oi.`id_order`, oi.`total_products`, oi.`total_paid_tax_excl`, oi.`total_shipping_tax_excl`, oi.`total_paid_tax_incl`,
(oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`) as total_vat,
round(((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`)/oi.`total_paid_tax_excl`)*100, 2) as tax_rate,
oi.`date_add`, c.`firstname`, c.`lastname`, a.`company`, a.`address1`, a.`postcode`, a.`city`
from ps_order_invoice oi
left outer join ps_orders o on oi.`id_order` = o.`id_order`
left outer join ps_customer c on o.`id_customer` = c.`id_customer`
left outer join ps_address a on o.`id_customer` = a.`id_customer`
order by  oi.`id_order_invoice` ASC

Wenn du magst, kannst du ja Name und Vorname entfernen.

Link to comment
Share on other sites

Sehr cool vielen Dank :D

Nur eins noch, den aktuellen Status, wie z.B. Storno oder Erfolgreich abgeschlossen u.s.w. kann man den da auch einbauen?

Dafür kann ich ja die Straße und PLZ weglassen. 

 

Wenn ich die Datei exportiere und mit OpenOffice öffne werden mir manche Beträge als Datum angezeigt. Das liegt dann wohl an den Einstellungen im OpenOffice, oder?

Link to comment
Share on other sites

So, du Quälgeist, jetzt auch noch mit Status, Rundung und Überschriften. Aber mehr gibt es umsonst nicht! ;)

select oi.`id_order_invoice` as Rechnungs_Nr, oi.`id_order`, round(oi.`total_products`,2) as Artikel_gesamt,  round(oi.`total_paid_tax_excl`,2) as Gesamt_netto,  round(oi.`total_shipping_tax_excl`,2) as Versand_netto, round(oi.`total_paid_tax_incl`,2) as Gesamt_brutto,
round((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`),2) as Gesamt_MwSt,
round(((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`)/oi.`total_paid_tax_excl`)*100, 0) as MwSt_Satz,
oi.`date_add` as Re_Datum, c.`firstname` as Vorname, c.`lastname` as Name, a.`company` as Firma, a.`address1` as Strasse, a.`postcode` as PLZ, a.`city` as Stadt, s.`name` as Status
from ps_order_invoice oi
left outer join ps_orders o on oi.`id_order` = o.`id_order`
left outer join ps_order_state_lang s on oi.`id_order` = o.`id_order`
left outer join ps_customer c on o.`id_customer` = c.`id_customer`
left outer join ps_address a on o.`id_customer` = a.`id_customer`
order by  oi.`id_order_invoice` ASC

Die Fehlformatierungen mancher Felder beim automatischen Import sind auch bei Excel lästig. Du kannst sie vermeiden, indem du die Dateiendung in.txt umwandeltst und beim Import den Tabellenspalten manuell das richtige Format zuweist.

 

Aus die Maus, jetzt solltest du den Thread als [gelöst] markieren! :)

Edited by eleazar (see edit history)
  • Like 2
Link to comment
Share on other sites

eleazar: ganz herzlichen Dank für die Abfrage!

 

Ich bin ein Dummy, was das betrifft und Du hilfst mir damit, eine furchtbare (da manuelle) Access-Tabelle zu ersetzen!!

 

äs Müntschi (schad, fehlt der (das) Smiley) häsch verdient! :)

Link to comment
Share on other sites

Na, dann eben ohne Müntschi, schließlich zählt die Absicht. :)

 

Aber ich habe etwas vorschnell gepostet, denn die letzte Fassung gibt nicht nur den letzten, sondern alle Statusarten der Bestellung aus. Das ist natürlich Unsinn. Da ich die Abfrage nicht übermäßig aufblähen möchte, muss der Status fürs Erste leider entfallen:

select oi.`id_order_invoice` as Rechnungs_Nr, oi.`id_order`, round(oi.`total_products`,2) as Artikel_gesamt,  round(oi.`total_paid_tax_excl`,2) as Gesamt_netto,  round(oi.`total_shipping_tax_excl`,2) as Versand_netto, round(oi.`total_paid_tax_incl`,2) as Gesamt_brutto, 
round((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`),2) as Gesamt_MwSt, 
round(((oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`)/oi.`total_paid_tax_excl`)*100, 0) as MwSt_Satz, 
oi.`date_add` as Re_Datum, c.`firstname` as Vorname, c.`lastname` as Name, a.`company` as Firma, a.`address1` as Strasse, a.`postcode` as PLZ, a.`city` as Stadt
from ps_order_invoice oi
left outer join ps_orders o on oi.`id_order` = o.`id_order`
left outer join ps_customer c on o.`id_customer` = c.`id_customer` 
left outer join ps_address a on o.`id_customer` = a.`id_customer` 
order by  oi.`id_order_invoice` ASC
Link to comment
Share on other sites

Habe ich auch gemerkt ;) habe eine Lösung für mich gefunden. Kombination aus deinem 2. Post und dem 3. Also im Prinzip genau dein letzten Post ;) 

 

Ich wollte das hier noch als "gelöst" markieren weiß aber nicht wie das geht Sry.  :wacko:

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