Closed susnux closed 9 years ago
ja man könnte die SQL Abfrage in Part::get_sum_price_instock() noch anpassen, damit auch der Preis für die entsprechende Stückzahl verwendet wird. Momentan sieht das folgendermassen aus:
$query = 'SELECT SUM(part_price) AS price_sum '.
'FROM (SELECT parts.id, AVG(pricedetails.price * parts.instock / pricedetails.price_related_quantity) AS part_price '.
'FROM pricedetails '.
'LEFT JOIN orderdetails ON pricedetails.orderdetails_id=orderdetails.id '.
'LEFT JOIN parts ON orderdetails.part_id=parts.id '.
'WHERE pricedetails.min_discount_quantity=1 '.
'GROUP BY parts.id) part_price';
Leider reichen meine SQL Kenntnisse aber nicht aus, um das Statement entsprechend anzupassen ;-)
Es gibt eigentlich nur einen Weg: zuerst die Staffelung aus der Datenbank lesen, um dann den richtigen Staffelpreis zu ermitteln. Das ganze kann mit zwei SQL-Abfragen gelöst werden oder man verwendet dazu ein SQL-Script auf der Datenbank. Letzteres allerdings läuft nicht auf jedem Datenbankserver, da nicht alle Hoster das dem User erlauben.
Ein SQL Skript wäre wohl eine gute Sache, da es wahrscheinlich schneller ist. Aber man sollte wahrscheinlich besser es mit zwei Abfragen lösen, da man sonst den Nutzerkreis einschränkt. Oder sieht das einer anders?
Ich habe mich mal dran gewagt und das ist dabei herausgenommen: https://github.com/susnux/Part-DB/commit/af8985903d60b4807486e9f3d297a52673e10885
Was haltet ihr davon, @ubruhin @weinbauer73 ? Kann man das so übernehmen, oder sollte ich es noch mal überarbeiten?
Wenn man unter Statistik den gesamt preis nachguckt, stimmt dieser nicht. Es wird mit dem preis für ein Teil gerechnet.
Beispiel: Ich habe nur ein Bauteil z.b. einen Widerstand, davon habe ich 100 Stück. Eingetragen ist: 1 Stk: 0.08€ 10 Stk: 0.05€ 100 Stk: 0.02€
Dann wird mir angezeigt: Wert aller mit Preis erfassten Bauteile: 8,00 €
Benutzte Version: 0.3.1