-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathskrypt_ograniczajacy_ilosc_sklepow_do_MMek.R
56 lines (36 loc) · 3.07 KB
/
skrypt_ograniczajacy_ilosc_sklepow_do_MMek.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
## skrypt, ktory ograniczy ilosc sklepow, ktore maja dostac MMki do wprowadzonej liczby
#usuwam z listy sklepy, ktorych niechce dotowarowywac (dokladam te,ktore sa ponad liczba dopuszczalnych MMek)
posortowane_1 %>% filter(!Magazyn %in% c(sklep_odtowarowywany,nie_przesuwac_do_nich)) %>% filter(Magazyn %in% lista_sklepow_ograniczona)->posortowane_11
# teraz wyznaczymy ostateczna liste biorcow z przesuniec. (tu dopuszczam tylko po indekso-rozmiarze, bo mniej sklepow, na pewno sie uda)
posortowane_11 %>% group_by(KodProduktu,Rozmiar) %>% slice(1) %>% select(1,2,3)->lista_biorcow
#zamiana rozmiarów z przecinkiem na kropke
str_replace(lista_biorcow$Rozmiar, ",",".")->lista_biorcow$Rozmiar
# przeniesienie zabranych ilosci na wskazany sklep
left_join(co_przesunac_od_nich, lista_biorcow, by=c("KodProduktu","Rozmiar")) %>% mutate(skad=sklep_odtowarowywany) %>% select(KodProduktu,Rozmiar, ilosc,skad,dokad=Magazyn) ->MMki
#wyszukuje indeksy, ktore nie maja pary
left_join(co_przesunac_od_nich, lista_biorcow, by=c("KodProduktu","Rozmiar")) %>% mutate(skad=sklep_odtowarowywany) %>% select(KodProduktu,Rozmiar, ilosc,skad,dokad=Magazyn)%>% filter(is.na(dokad)) ->indeksy_na
#daje im kategoryzacje
indeksy_na %>% left_join(hierarchia_1, by=c("KodProduktu")) %>% filter(KATEGORIA!= "ARTYKUŁY DLA SKLEPÓW")->indeksy_do_rozdysponowania
#wskazuje najbardziej niedotowarowany sklep w danej kategorii i departamencie
##uwzgledniajac, ze nie kazdy sklep moze miec kazdy towar, np junior czy jeansy. Dla uproszczenia wyklucze wszystkie, bez rozrozniania
#do wyboru 1 z 2 opcji, wskazanych w skrypcie glownym
if(opcja_1==1){
zestawienie1_1 %>% select(Magazyn,KATEGORIA,DEPARTAMENT,GRUPA, WARTOŚC) %>% arrange(WARTOŚC, KATEGORIA, DEPARTAMENT, GRUPA) %>% unique() %>%
filter(!Magazyn %in% c(sklep_odtowarowywany,nie_przesuwac_do_nich,gdzie_nie_jeansy,gdzie_nie_junior) & Magazyn %in% lista_sklepow_ograniczona) %>%
group_by(KATEGORIA, DEPARTAMENT, GRUPA) %>% slice(1)->dodatkowi_dawcy
#rozdysponowuje te indeksy NA
left_join(indeksy_do_rozdysponowania, dodatkowi_dawcy, by=c("KATEGORIA","DEPARTAMENT","GRUPA")) %>% select(1,2,3,4,dokad=Magazyn)->MMki_1
# scalam zarowno te poprawnie wczesniej rozdysponowane jak i te teraz wskazane
rbind(MMki_1, na.omit(MMki))->MMki_scalone
} else if (opcja_1==2){
zestawienie1_1 %>% left_join(SLS_SUMA, by=c("Magazyn","KATEGORIA","DEPARTAMENT")) %>% select(Magazyn,KATEGORIA,DEPARTAMENT,GRUPA, SUMA) %>%
arrange(desc(SUMA), KATEGORIA, DEPARTAMENT, GRUPA) %>% unique() %>%
filter(!Magazyn %in% c(sklep_odtowarowywany,nie_przesuwac_do_nich,gdzie_nie_jeansy,gdzie_nie_junior) & Magazyn %in% lista_sklepow_ograniczona) %>%
group_by(KATEGORIA, DEPARTAMENT, GRUPA) %>% slice(1)->dodatkowi_dawcy
#rozdysponowuje te indeksy NA
left_join(indeksy_do_rozdysponowania, dodatkowi_dawcy, by=c("KATEGORIA","DEPARTAMENT","GRUPA")) %>% select(1,2,3,4,dokad=Magazyn)->MMki_1
# scalam zarowno te poprawnie wczesniej rozdysponowane jak i te teraz wskazane
rbind(MMki_1, na.omit(MMki))->MMki_scalone
} else {
print("wybierz opcje 1 lub 2")
}