TAS:Pokročilé/Kurýr/pl: Porovnání verzí

Z Solvertech
Skočit na navigaci Skočit na vyhledávání
(založena nová stránka s textem „Moduł kurierski nie jest "klasycznym" modułem, jest modyfikacją [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/ScenarioImporter/pl ScenarioImporter] i ewentualnie [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/SolverTech.Tasha.PlugIns.Commands.PostImportJobsCompute/pl PostImportJobsCompute] aby znaleźć ceny poszczególnych przewoźników, znaleźć najtańsze…“)
 
(Stránka aktualizována, aby odpovídala nové verzi zdrojové stránky)
 
Řádek 1: Řádek 1:
<languages />  
<languages />  
Moduł kurierski nie jest &quot;klasycznym&quot;  modułem, jest modyfikacją [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/ScenarioImporter/pl ScenarioImporter] i ewentualnie [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/SolverTech.Tasha.PlugIns.Commands.PostImportJobsCompute/pl PostImportJobsCompute] aby znaleźć ceny poszczególnych przewoźników, znaleźć najtańsze (głównie) i porównać je z ceną dostawy.
Moduł kurierski nie jest &quot;klasycznym&quot;  modułem, jest modyfikacją [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/ScenarioImporter/pl ScenarioImporter] i ewentualnie [https://wiki.solvertech.cz/wiki/TAS:Pokro%C4%8Dil%C3%A9/Pluginy/Input,_Output/Import/SolverTech.Tasha.PlugIns.Commands.PostImportJobsCompute/pl PostImportJobsCompute] aby znaleźć ceny poszczególnych przewoźników, znaleźć najtańsze (głównie) i porównać je z ceną dostawy.



Aktuální verze z 26. 3. 2023, 15:29

Jiné jazyky:

Moduł kurierski nie jest "klasycznym" modułem, jest modyfikacją ScenarioImporter i ewentualnie PostImportJobsCompute aby znaleźć ceny poszczególnych przewoźników, znaleźć najtańsze (głównie) i porównać je z ceną dostawy.

Ogólnie
W ramach ScenarioImporter musisz dodać dynamiczne kolumny potrzebne do obliczeń. Możemy jedynie zalecać "cywilizowane" nazwy kolumn, aby było jasne, co zawiera kolumna. Kolumna "cena1" prawdopodobnie niewiele mówi, kolumna "geis1zona" jest lepsza. Skomentuj kod. Kurier jest jednym z bardziej skomplikowanych obliczeń i jeśli wrócisz do kodu po długim czasie (lub będziesz musiał poradzić sobie z nim przez kolegę), docenisz komentarze.

Ustalenie ceny przewoźnika na podstawie wagi przesyłki
Jedno z najczęstszych obliczeń.
Zacznijmy od DPD z następującym cennikiem:

Waga Cena
do 15 kg 79 Kč
16 - 50 kg 119 Kč
51 - 100 kg 159 Kč

W ramach ScenarioImporter będziesz potrzebował następującego kodu (zapotrzebowanie1 to waga przesyłki i jest już zdefiniowana):

<ColumnsCalculated> <string>dynamic;dpdcena;dynamic;dpdcena;stop1;demand1;;stop1demand1<101?159:dynamicdpdcena</string> <string>dynamic;dpdcena;dynamic;dpdcena;stop1;demand1;;stop1demand1<51?119:dynamicdpdcena</string> <string>dynamic;dpdcena;dynamic;dpdcena;stop1;demand1;;stop1demand1<16?79:dynamicdpdcena</string> </ColumnsCalculated>

Kod mówi, że jeśli waga przesyłki jest mniejsza niż 101 kg, wartość jest zapisywana w kolumnie dpdc na 15. Podczas oceny warunków należy przejść od najwyższej możliwej lub najniższej możliwej (następnie użyj “&gt;”)

Ustalanie ceny przewoźnika przy korzystaniu ze stref
Zacznijmy od przewoźnika Geis z następującym cennikiem:

do 15 kg do 50 kg do 100 kg
Praha 59 119 159
Čechy 69 159 199
Morava 79 199 259

W ScenarioImporter potrzebny będzie następujący kod:

<ColumnsCalculated> <string>dynamic;geiszona;dynamic;geiszona;dynamic;psc;;dynamicpsc>59999?3:dynamicgeiszona</string> <string>dynamic;geiszona;dynamic;geiszona;dynamic;psc;;dynamicpsc<60000?2:dynamicgeiszona</string> <string>dynamic;geiszona;dynamic;geiszona;dynamic;psc;;dynamicpsc<20000?1:dynamicgeiszona</string>

<string>dynamic;geis1zona;dynamic;geis1zona;stop1;demand1;;stop1demand1<101?159:dynamicgeis1zona</string> <string>dynamic;geis1zona;dynamic;geis1zona;stop1;demand1;;stop1demand1<51?119:dynamicgeis1zona</string> <string>dynamic;geis1zona;dynamic;geis1zona;stop1;demand1;;stop1demand1<16?59:dynamicgeis1zona</string>

<string>dynamic;geis2zona;dynamic;geis2zona;stop1;demand1;;stop1demand1<101?199:dynamicgeis2zona</string> <string>dynamic;geis2zona;dynamic;geis2zona;stop1;demand1;;stop1demand1<51?159:dynamicgeis2zona</string> <string>dynamic;geis2zona;dynamic;geis2zona;stop1;demand1;;stop1demand1<16?69:dynamicgeis2zona</string>

<string>dynamic;geis3zona;dynamic;geis3zona;stop1;demand1;;stop1demand1<101?259:dynamicgeis3zona</string> <string>dynamic;geis3zona;dynamic;geis3zona;stop1;demand1;;stop1demand1<51?199:dynamicgeis3zona</string> <string>dynamic;geis3zona;dynamic;geis3zona;stop1;demand1;;stop1demand1<16?79:dynamicgeis3zona</string>

<string>dynamic;cenageis;dynamic;cenageis;dynamic;geiszona;dynamic;geis1zona;;dynamicgeiszona==1?dynamicgeis1zona:dynamiccenageis</string> <string>dynamic;cenageis;dynamic;cenageis;dynamic;geiszona;dynamic;geis2zona;;dynamicgeiszona==2?dynamicgeis2zona:dynamiccenageis</string> <string>dynamic;cenageis;dynamic;cenageis;dynamic;geiszona;dynamic;geis3zona;;dynamicgeiszona==3?dynamicgeis3zona:dynamiccenageis</string> </ColumnsCalculated>


Ceny przy korzystaniu z odległości
Zacznijmy od TopTrans z następującym cennikiem:

do 100 km do 300 km do 700 km
do 15 kg 59 119 159
16 - 50 kg 69 159 199
51 - 100 kg 79 199 259

W takim przypadku konieczne jest obliczenie zarówno w ScenarioImporter, jak i w PostImportJobsCompute.

W ScenarioImporter potrzebny będzie następujący kod:

<ColumnsCalculated> <string>dynamic;toptrans100km;dynamic;toptrans100km;stop1;demand1;;stop1demand1<101?79:dynamictoptrans100km</string> <string>dynamic;toptrans100km;dynamic;toptrans100km;stop1;demand1;;stop1demand1<51?69:dynamictoptrans100km</string> <string>dynamic;toptrans100km;dynamic;toptrans100km;stop1;demand1;;stop1demand1<16?59:dynamictoptrans100km</string>

<string>dynamic;toptrans300km;dynamic;toptrans300km;stop1;demand1;;stop1demand1<101?199:dynamictoptrans300km</string> <string>dynamic;toptrans300km;dynamic;toptrans300km;stop1;demand1;;stop1demand1<51?159:dynamictoptrans300km</string> <string>dynamic;toptrans300km;dynamic;toptrans300km;stop1;demand1;;stop1demand1<16?119:dynamictoptrans300km</string>

<string>dynamic;toptrans700km;dynamic;toptrans700km;stop1;demand1;;stop1demand1<101?259:dynamictoptrans700km</string> <string>dynamic;toptrans700km;dynamic;toptrans700km;stop1;demand1;;stop1demand1<51?199:dynamictoptrans700km</string> <string>dynamic;toptrans700km;dynamic;toptrans700km;stop1;demand1;;stop1demand1<16?159:dynamictoptrans700km</string> </ColumnsCalculated>


W PostImportJobsCompute potrzebny będzie następujący kod:

<Equations> <string>cenatoptrans;cenatoptrans;toptrans700km;distance;;distance<701?toptrans700km:cenatoptrans</string> <string>cenatoptrans;cenatoptrans;toptrans300km;distance;;distance<701?toptrans300km:cenatoptrans</string> <string>cenatoptrans;cenatoptrans;toptrans100km;distance;;distance<701?toptrans100km:cenatoptrans</string> </Equations>


Jeśli stosowane jest obliczanie odległości, należy kliknąć "Obliczenia zamówienia" po załadowaniu zamówień (i prawidłowym obliczeniu macierzy odległości)..
Jeśli Tasha ma określić optymalnego przewoźnika, konieczne jest porównanie cen różnych przewoźników i zapisanie najniższego przewoźnika na job.notservedpenalty (jeśli stosuje się PostImportJobsCompute, należy tam dokonać porównania i przypisania). Podczas rozwiązania tasha decyduje, czy bardziej opłacalne jest doręczenie przesyłki, czy pozostawienie jej bez nadzoru (tzn. Kara za niezapłaconą kwotę będzie niższa niż koszt dostawy).