Jump to content
  • 0

Dodatkowa kolumna w zaawansowanym zarzadzaniu magazynem


Tasslhof

Question

Witam serdecznie czy ktoś miałby jakiś pomysł jak dodać dodatkową kolumnę do tabeli zarządzania magazynem? Wyjaśniając mamy "3 magazynyi nie zawsze człowiek wie w którym akurat jakiś towar występuje chciałbym dodać 3 kolumny - Magazyn 1, Magazyn 2, Magazyn 3, gdzie mielibyśmy wyszczególnioną ilość danego towaru w tym magazynie.  

ktoś miałby jakiś pomysł?? z góry dziękuje za wszelką pomoc.

Korzystam z Presty 1.6.1.23

warehouse.jpg

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

dziękuje za wszelką pomoc :-D, dzisiaj mnie trochę olśniło:

    'printStockQuantityMagazyn1' => array(
            'title' => $this->l('Magazyn 1'),
            'align' => 'center',
            'orderby' => true,
            'search' => false,
                   ),

i oczywiście trzeba było rozszerzyć "public function renderList()"

(SELECT physical_quantity FROM `'._DB_PREFIX_.'stock` WHERE id_product = a.id_product AND id_warehouse = 1) as printStockQuantityMagazyn1,

przy wcześniejszej budowie tabelki callback nie wywoływał funkcji, sprawdziłem var_dump(), temat do zamknięcia  

Link to comment
Share on other sites

  • 0

Mysle, ze jest to wykonania. Tylko zostaje wiele pytan. Np. Jak wstawiasz produkty dla danych magazynow? Jezeli te dane zapisane sa w tabelach mySQL to tylko kwestia wyciagniecia tego w danym kontrolerze tabelki. Jezeli nie ma tych danych to w pierwszej kolejnosci trzeba by pokombinowac jak je w tabele danych wciagnac a pozniej j.w. tylko dodac do kontrolera

Najczesciej przebudowywalem tabelki zamowien czy klientow. Troche grzebabiny jest ale do okielznania :) jezeli dane sa w tabelach to problem jest, powiedzm...., niewielki jezeli znasz budowe kontrolerow i funkcji presta. 

Edited by design4VIP (see edit history)
Link to comment
Share on other sites

  • 0

więc wyjaśniając Prestę znam raczej bardzo słabo na co dzień nie mam z nią żadnych styczności więc moja znajomość kontrolerów i funkcji presty nie istnieje za bardzo 😛, korzystamy z zaawansowanego zarządzania magazynem, 

dane są oczywiście tabeli _stock mają ten sam produkt ID różnią się id_warehrouse, więc najlepiej był by stworzyć funkcję która pobiera tabele stock i po id produktu zwraca tabelę ze stanem magazynowym

od razu napomknę że nie wykorzystujemy Presty jako sklepu internetowego tylko darmowego systemu do zarządzania magazynem żeby wiedzieć gdzie co się znajduje.

stock.PNG

Link to comment
Share on other sites

  • 0

W kontrolerze do listy wyświetlanych pól dodaj własne pola, każde pole powinno posiadać tzw 'callback' czyli funkcje która będzie odpowiedzialna za pobranie i wyświetlenie danych.

Funkcja jako parametry dostaje id i zestaw danych z określonego wiersza, na podstawie tych parametrów pobiera odpowiednie dane i zwraca wynik.

Przykład dodania dodatkowego pola jest np tutaj:

https://www.prestashop.com/forums/topic/563394-eksport-zamówień/#comment-2434672

 

  • Thanks 1
Link to comment
Share on other sites

  • 0

na razie chce przetestować coś łopatologicznie, bez korzystania z override: 

w głównym kontrolerze dodaje tabaleke

		$stock_mid1_qt = array(
            'title' => $this->l('Magazyn 1'),
            'align' => 'center',
            'orderby' => true,
			'search' => false,
            'callback' => 'printStockQuantity1'
        ),

wywołuje funkcje i chce wypełnić tabelkę wypełniaczem:

	public function printStockQuantity1() {
		return 'aaa';
		
	}

jednak dostaje pustą tabele niewypełnioną - dlaczego??

Link to comment
Share on other sites

  • 0

1. dodałeś kolumnę do tabelki - tablica $stock_mid1_qt - ok
2. dodałeś funkcje printStockQuantity 1() która wyświetla jakieś dane - ok, ale lepiej by było aby ta funkcja miała dwa parametry np: $id i $tr (min 1)
3. tablice $stock_mid1_qt musisz podpiąć do zmiennej $this->fields_list, np. $this->fields_list['nowe_pole'] = $stock_mid1_qt - zobacz konstruktor w przykładzie
4. musisz zdefiniować w zapytaniu sql co ma być pobierane dla $this->fields_list['nowe_pole'], np. $this->_select .= ' , a.id_stock AS nowe_pole';  - zobacz przykład

jakoś tak by to było, nie wiem który kontroler modyfikujesz

 

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