Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prośba poprawy kodu, Dodawanie produktu do koszyka a rabaty
Enikc
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 8.01.2015

Ostrzeżenie: (0%)
-----


Cześć, wiecie co jest nie tak z tym kodem?

Tabela product ma price
Tabela product_special ma price

Tabela Rabaty nie ma price jest obliczane, produkty wyśiwetla ale gdy dodaje do koszyka coś jest nie tak bo jak dodam produkt z rabetm jest ok,
jak dodam produkt specjalny jest ok
ale jak dodam produkt specjalny a pozniej z rabtem to ceny nie wylicza, próbwałem różnych kombinacji i poległem, prosiłbym o pomoc


  1. // Product Specials
  2. $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");
  3.  
  4. if ($product_special_query->num_rows) {
  5. $special = $product_special_query->row['price'];
  6. $price = $special;
  7. }
  8.  
  9. // Rabat
  10. $product_rabat_query = $this->db->query("SELECT `discount` as rabat, `type` FROM " . DB_PREFIX . "rabat r LEFT JOIN " . DB_PREFIX . "rabat_product rp ON (r.rabat_id = rp.rabat_id) LEFT JOIN " . DB_PREFIX . "rabat_category rca ON (r.rabat_id = rca.rabat_id) LEFT JOIN " . DB_PREFIX . "rabat_manufacturer rm ON (r.rabat_id = rm.rabat_id) LEFT JOIN " . DB_PREFIX . "rabat_customer rc ON (r.rabat_id = rc.rabat_id) LEFT JOIN " . DB_PREFIX . "rabat_customer_group rcg ON (r.rabat_id = rcg.rabat_id) WHERE (rp.product_id = '" . (int)$product_id . "' OR rca.category_id IN (SELECT `category_id` FROM " . DB_PREFIX . "product_to_category WHERE `product_id` = '" . (int)$product_id . "' ) OR rm.manufacturer_id IN (SELECT `manufacturer_id` FROM " . DB_PREFIX . "product_to_manufacturer WHERE `product_id` = '" . (int)$product_id . "')) AND (rc.customer_id = '" . (int)$customer_id . "' OR rcg.customer_group_id = '" . (int)$customer_gr_id . "') AND r.status = '1' AND r.date_start <= CURDATE() AND r.date_end >= CURDATE()");
  11.  
  12. if (!isset($special)) {
  13. foreach ($product_rabat_query->rows as $prq) {
  14. if ($prq['type']=='P') {
  15. $price -= ( ( $price * $prq['rabat'] ) / 100);
  16. } else {
  17. $price -= $prq['rabat'];
  18. }
  19. }
  20. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1. if (!isset($special)) {
  2. (...)
  3. } else {
  4. //tu odejmij rabat od ceny
  5. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:05