Hurtownia AB udostępnia plik CSV, w którym przekazuje informacje dotyczące przyszłych dostaw swoich produktów. Zadanie polega na zaimportowaniu danych z pliku oraz przygotowaniu podstrony prezentującej planowaną dostawę.
Przełącz się na branch "task" wewnątrz katalogu custom. Zadanie postaraj się zrealizować modyfikując lub dodając nowe pliki w obrębie tego katalogu.
Korzystając z dostępnych mechanizmów importu danych zaimportuj poniższy plik uzupełniając odpowiednio tabelki "deliveries" oraz "delivery_products".
(https://[instance].l2.cloud.cstore.pl/docs/1.0/development/extending#importers-exporters)
(https://[instance].l2.cloud.cstore.pl/docs/1.0/development/extending#storage)
Jeżeli nie wiesz w jaki sposób skorzystać z klasy CompleteImporter, przygotuj skrypt od podstaw.
Jeżeli masz ochotę, możesz też napisać prosty skrypt, który w oparciu o dane znajdujące się w bazie danych (tabelka "products") będzie generować plik "deliveries.csv" z losowymi datami i stanami magazynowymi.
Warto skorzystać z klasy Faker\Factory.
Prawidłowo zaimportowane dostawy powinny pokazać się na karcie produktu, screen poniżej.
Należy podlinkować daty wewnątrz kolumny "data" do nowo utworzonej podstrony, która wyświetli wszystkie produkty przypadające na dostawę.
resources/templates/default/product.blade.php
(https://[instance].l2.cloud.cstore.pl/docs/1.0/development/extending#extending-views)
(https://[instance].l2.cloud.cstore.pl/docs/1.0/development/extending#adding-routes)
Aby wyświetlić listę produktów, możesz skorzystać z komponentu app/View/Components/Products.php.
Spróbuj zastosować paginację, wyświetlając nie więcej niż 15 produktów na stronie.
Należy dodatkowo wyprowadzić obok poszczególnych produktów informacje o przypadającej ilości na daną dostawę. Dla poniższych przedziałów należy zastosować odpowiednie kolory:
Podstrona powinna być dostępna tylko i wyłącznie dla zalogowanych użytkowników.
Wprowadź modyfikację powiększającą stany magazynowe poszczególnych produktów o ilości przypadające na przyszłe dostawy.
Stan magazynowy ma być przeliczany dynamicznie, nie należy modyfikować stanu magazynowego z poziomu bazy danych.
Sugerujemy odpowiednie rozszerzenie klasy app/Models/Product.php.
(https://[instance].l2.cloud.cstore.pl/docs/1.0/development/extending#extending-classes)
Na sam koniec upewnij się, że wprowadzone zmiany nie generują zbyt dużej liczby zapytań do bazy dancyh.
(http://l2.local/docs/1.0/development/basic-information#debugbar)