Wpis z mikrobloga

Mam problem, którego nie jestem w stanie ogarnąć w #python

Problem jest następujący - trzeba dopasować dostawy towarów do ich lokalizacji magazynowych.
Trudność polega na tym, że nierzadko jedna dostawa towaru rozkładana jest w kilka miejsc, więc te ilości nie są zgodne.
Poniżej przykład - w obu przypadkach jest w sumie 47 produktów.

CSV1 - DOSTAWY
data
dostawy;towar;ilosc
21-02-2021;towar1;41
28-03-2021;towar1;3
17-08-2021;towar1;3

CSV_2 - LOKALIZACJE
towar;lokalizacja;ilosc
towar1;A1;21
towar1;A2;13
towar1;A3;4
towar1;A4;9

OCZEKIWANY WYNIK:
towar1;A1;21;21-02-2021
towar1;A2;13;21-02-2021
towar1;A3;4;21-02-2021
towar1;A4;3;21-02-2021 (tutaj już skończyło mi się 41 sztuk towaru z dostawy nr 1 więc rozbijam lokalizację na dostawy)
towar1;A4;3;28-03-2021
towar1;A4;3;17-08-2021

Rzeczywiście to jest takie trudne do #programowanie czy mam zaćmienie?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dar_Q: rozpisz sobie w pseudokodzie algorytm, workflow jak to miałoby wyglądać, jakbyś sam manualnie to robił zamiast aplikacji.
Przepisz to na python i gotowe ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Dar_Q: Masz bez sensu dane wejściowe. Zamiast pisać algorytm sprawdź czy nie da się wygenerować lepszych danych, tak żeby przy dostawie pojawiła się lokalizacja, bo może ta informacja tam już jest, tylko jej nie dostajesz. A jak nie ma tej informacji, to może trzeba się przyjrzeć procesowi żeby się pojawiała podczas księgowania dostawy.
  • Odpowiedz
trzeba dopasować


@Dar_Q: tzn odtwarzasz coś, czego nie masz w danych, czy przydzielasz? W pierwszym przypadku to nie ma sensu, w końcu można to zrobić na wiele możliwych sposobów, chyba że wiesz że zawsze idzie po kolei po lokacjach w czasie.

Generalnie pewnie operację można zrobić jedną linijką w pandasach tylko trzeba dobrze wygooglować ( ͡° ͜ʖ ͡°) Jak samemu algorytm to robisz dicty z dostawami
  • Odpowiedz
@red_button: Nie da się wygenerować lepszych danych bo te informacje nie były przechowywane wcześniej. Jestem właśnie w momencie przejścia ze starego systemu na nowy, bardziej zaawansowany gdzie już te dane już będą ale w chwili migracji trzeba wgrać jakiś bilans otwarcia i stąd potrzeba przygotowania "wsadu".
Można to oszukać wrzucając cały towar na jedną, wirtualną dostawę uśredniając ceny zakupu ale liczyłem, że uda mi się znaleźć jakiś bardziej elegancki sposób.
  • Odpowiedz
tzn odtwarzasz coś, czego nie masz w danych, czy przydzielasz? W pierwszym przypadku to nie ma sensu, w końcu można to zrobić na wiele możliwych sposobów, chyba że wiesz że zawsze idzie po kolei po lokacjach w czasie.


@IamHater: Przydzielam istniejące dane aby stworzyć z nich bilans otwarcia do nowego systemu ERP, w którym to będzie już spójne.

Dzięki za wskazówki - może mi się uda znaleźć czas aby nad
  • Odpowiedz