Wpis z mikrobloga

Potrzebuję pomocy (oczywiście nie za darmo, ale też w granicach rozsądku ( ͡° ͜ʖ ͡°) ) z przerobieniem jednej klasy prestashopu. Chodzi o sprawdzanie wymiarów paczki i dopasowanie do niej odpowiedniego dostawcy.

W oryginale porównuje wymiary wszystkich produktów w koszyku z maksymalnymi możliwymi wymiarami dla danego dostawcy. Tak więc przykładowo, gdy w zamówieniu jest kilka przedmiotów, które mają wymiary mniejsze od maksymalnych dla danego przewoźnika, skrypt przepuści tego przewoźnika mimo, że po zsumowaniu wymiarów wszystkich produktów paczka będzie za duża.

Chodzi o ten fragment kodu: http://wklej.org/id/1765716/. Trzeba go przerobić na coś w rodzaju tego: http://stackoverflow.com/a/21776020
#programowanie #php #prestashop
  • 15
@fanatykwedkarstwav3: Ja mam pytanie czy rozumiesz skalę problemu? Postaram się to szybko zobrazować: Podaj przykłady (najlepiej wszystkie) wymiarów paczki o następujących rozmiarach produktów w niej umieszczonej: A(80x40x40), B(40x40x40), C(40x40x40). Wagę pominąłem bo tutaj wystarcza suma, dopóki nie chcemy jednego zamówienia dzielić na paczki.
@stacktrace: Jak najbardziej rozumiem. Przykład ze stackoverflow to już gotowy kod, który trzeba zmodyfikować tak, żeby wymiary zamiast z formularza pobierał z przedmiotów w koszyku i następnie porównywał opracowany na końcu wymiar całej, nowej paczki z maksymalnymi wymiarami przewoźnika.
@fanatykwedkarstwav3: tak naprawdę to 5 minutek zejdzie na same dogadanie się xD Potem 15 minutek na zaznajomienie się ze specyfikacją, 25 minutek na napisanie kodu, 15 minutek na kłótnię o dostęp do ftp i potem, zależnie od sytuacji, 10-30 minutek na testy xD Tada, z 5 minutek zrobiła się godzinka ( ͡° ͜ʖ ͡°)
@fanatykwedkarstwav3: najpierw to pokaż te dane przewoźników i powiedz gdzie je trzymasz (plik, baza danych, a może jeszcze nigdzie i pozostaje to do zaprojektowania?), nie da się czegoś wycenić bez podstawowych informacji
@DiKey: Patrzyłeś na linki które dodałem do wpisu? Kod ze stackoverflow generuje optymalne wymiary (wysokość, szerokość, głębokość), a presta porównuje w ten sposób (przykładowo dla wysokości): $carrier->maxheight > 0 && $carrier->maxheight < $product->height. Zamiast $product->height ma brać optymalną wysokość wygenerowaną wcześniej
@fanatykwedkarstwav3: Moim zdaniem (być może mam za mało danych) jedno optymalne rozwiązanie uzyskiwane przez ten algorytm nie musi być optymalne ze względu na dopuszczalne rozmiary paczki. Jeżeli masz tego świadomość to spoko i faktycznie roboty jest na 5 minut.
@stacktrace: Mam tego świadomość, ale to jest póki co najlepszy sposób jaki znalazłem. Mniej więcej generuje ostateczny rozmiar paczki, dzięki czemu będę mógł ukryć przewoźników dla których paczka z kilkoma produktami w danym zamówieniu będzie za duża. Obecny system i tak jest bezużyteczny, gdy zamówi się więcej niż jeden produkt.