Ceny retrospektywne

Rozwiązanie umożliwia:

Rozwiązanie polega na wprowadzaniu do systemu 'specyfikacji', które będą generować ceny minimalne oraz maksymalne dla klucza grupowania.

Ceny retrospektywne mogą być użyte do:

Spis treści

Specyfikacje kalkulatora retrospektywnego

Analiza rentowności retrospektywnej

Kalkulator rentowności retrospektywnej

Pojęcia

Algorytmy

Wartość ZAK na dostawach

Wartość ta powstaje na podstawie specyfikacji ZAK, zapisywana jest w polu dodatkowym dostawy.

Wykorzystywana jest do wyliczenia ceny T.

Wywołanie przeliczenia wartości ZAK na dostawie odbywa się:

  1. podczas wystawiania/edycji dokumentów magazynowych
    • dwa tryby uruchomienia
      1. jeśli dokument tworzący dostawy to po wyliczeniu wartości ZAK występuje dodatkowo przeliczenie ceny T na towarach
      2. jeśli inny dokument (czyli wydania po prostu) to wyłączanie przeliczenie wartości ZAK na dostawach
    • pierwotnie na procedurach AfterInsert oraz AfterUpdate, możliwa wdrożeniowa konfiguracja pod wybrane typy dokumentów i/lub inne procedury
  2. Poprzez ręczne wywołanie w celu przeliczenia wszystkich dostaw wybranego towaru
  3. Poprzez ręczne wywołanie w celu przeliczenia wszystkich dostaw wszystkich towarów

Dla danej dostawy bierzemy pod uwagę wszystkie specyfikacje ZAK wg filtrów:

Sumowane są modyfikatory procentowe i wartościowe ze wszystkich pasujących specyfikacji.
Wartości ze specyfikacje są brane dla wybranego towaru (jeśli jest) lub ogólna dla całej specyfikacji.

Wartość ZAK wyliczana jest wg wzoru:
cena z dostawy * suma modyfikatorów procentowych + suma modyfikatorów wartościowych.

Cena T

Wyliczana jest na podstawie średnioważonej ceny z niezerowych dostaw danego towaru na magazynie głównym (możliwe dodanie konfiguracji konkretnych magazynów) z uwzględnieniem wartości ZAK na w.w. dostawach.

Wykorzystywana jest jako podstawa do wyliczenia ceny H.

Wzór na wyliczenie tej ceny różni się w zależności od dostaw danego towaru.

  1. W przypadku, gdy istnieją niezerowe dostawy na magazynie głównym:
    • cena T = SUMA( ilość * (cena - ZAK) ) / SUMA( ilość )
    • ilość to pozostała ilość na wybranej dostawie
    • cena to cena z dostawy
  2. W przypadku, gdy nie ma w.w. dostaw szukamy ostatniej dostawy na magazynie głównym. W takim wypadku:
    • cena T = cena-ZAK
  3. W przypadku, gdy nie ma w.w. dostawy bierzemy cenę zakupu z kartoteki towaru. W takim wypadku cena T to po prostu cena zakupu towaru.
    • cena T = kartotekowa cena zakupu towaru

Ceny retrospektywne H i P

Generowanie cen H i P może odbywać się w dwóch trybach.

Ceny H i P wyliczane są na podstawie specyfikacji SPR.

  1. Brane są pod uwagę wszystkie specyfikacje SPR, których okres obowiązywania obejmuje dzisiejszy dzień.
  2. Dla specyfikacji z podanymi rodzajami TW/KH lub wybraną opcją 'wszystkie' odczytywana jest lista towarów/kontrahentów.
  3. Grupowanie specyfikacji wg częściowego klucza grupowania.
  4. Zebranie do listy cen T wszystkich towarów, które się trafiły.
  5. Zebranie do listy cen C wszystkich towarów, które się trafiły.
  6. Wyliczenie cen H i P dla kluczy grupowania.
    Wyliczanie równoległe wielowątkowo
    Poniższe punkty wykonywane są niezależnie dla każdego częściowego klucza grupowania:
    1. Zainicjowanie listy pełnych kluczy grupowania
    2. Grupujemy specyfikacje wg poziomu
    3. Pętla A po każdym poziomie
      1. Pętla B po każdym elemencie listy kluczy z uwzględnieniem ilości
        1. Zainicjowanie pól na wyliczenie cen H oraz P:
          1. wartości złotówkowe:
            1. ceny H
            2. ceny P
          2. wartości procentowe rozbite wg klucza:
            1. dotyczące ceny H/ceny P ( w przypadku gdy 'Dotyczy wszystkiego' to wartość zostanie doliczona do obu kluczy)
            2. liczone normalnie (czyli H od T, P od C) / tylko od T / tylko od C
            3. ze źródłem wartości z poprzedniego poziomu / z kartoteki
        2. Pętla C po każdej specyfikacji z poziomu z pętli A z ilością <= elementowi pętli B w kluczu
          1. Wyznaczamy wartość ze specyfikacji lub z towaru
          2. W zależności od modyfikatora specyfikacji:
            1. Jeśli złotówkowa to w zależności od parametru 'dotyczy' doliczamy wartość do odpowiedniego pola
            2. Jeśli procentowa to w zależności od pól 'dotyczy', 'odCzegoLiczone', 'źródło wartości' doliczamy wartość do odpowedniego pola
        3. Zainicjowanie cen H i P przechowywanych w elemencie pętli B jeśli jeszcze nie były zainicjowane
          1. inicjujemy je odpowiednio cenami T i C.
        4. Zmodyfikowanie cen H i P z elementu pętli B o wartości z punktu 1.
    4. Sprawdzamy, czy którakolwiek cena H lub P jest mniejsza niż 0,01. Jeśli tak to ustawiamy ją na 0,01.
  7. Usunięcie starych cen retrospektywnych
  8. Zapisywanie nowych cen wygenerowanych w punkcie 6.
  9. Dopisanie/nadpisanie cen na podstawie upustów ilościowych
    1. Pobieramy z dokumentów zamówień obcych wszystkie obowiązujące upusty ilościowe
    2. Tworzymy dla nich pełny klucza grupowania
    3. Jeśli dla danego klucza została już wygenerowana cena w punkcie 6. to zostaje ona nadpisywana tą z upustu ilościowego
    4. Ceny z upustów ilościowych, które nie miały wygenerowanego swojego klucza zostają dopisywane.