Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: SlawekPL w Grudzień 03, 2015, 14:13:15

Tytuł: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 03, 2015, 14:13:15
Witam!

Potrzebuję uzyskać informację o stanie magazynowym danego produktu na koniec zadanego dnia.

Znalazłem tablicę [dok_MagRuch], zgaduję że wydania to te pozycje, które nie mają ustawionego mr_MagID więc przygotowałem takiego SQL'a

Stan towaru o ID:1 z magazynu MAG:1

-- Stan towaru o ID:1 z magazynu MAG:1

SELECT sum ( case when mr_MagId is null then -mr_Ilosc else mr_Ilosc end )
  FROM [dok_MagRuch]
  where (mr_MagID is null or mr_MagId=1) and mr_Data<'2008-08-10' and mr_TowId=1

Czy to jest OK, czy powinienem podejść do tego w inny sposób?

Jeszcze jedno: nie bardzo rozumiem znaczenie pola mr_Pozostalo. Przy większości wydań jest ono równe mr_Ilosc, ale czasami jest mniejsze.


--
Sławek
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: Aldo w Grudzień 03, 2015, 15:07:08
Jeśli "produktu", to zakładam, że jednego. Informator do tego nie wystarczy?
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 03, 2015, 15:32:53
Aldo... pytam w dziale "Sfera zestawienia dodatki", a nie "Subiekt dla początkujących" powinieneś się domyślić. :)

Oczywiście że "informator nie wystarczy", bo ma to być część większego podprogramu.

A teraz jak już wiesz, to proszę podziel się wiedzą.
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: dkozlowski w Grudzień 03, 2015, 15:38:18
Dlaczego kolejny raz pytasz o to samo, zajrzyj jak działa program: http://www.forumsubiekta.pl/dodatki-zestawienia/data-blokady-i-crash-sfery/msg53462/#msg53462 (http://www.forumsubiekta.pl/dodatki-zestawienia/data-blokady-i-crash-sfery/msg53462/#msg53462).
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: Aldo w Grudzień 03, 2015, 19:28:59
Aldo... pytam w dziale "Sfera zestawienia dodatki", a nie "Subiekt dla początkujących" powinieneś się domyślić. :)

Oczywiście że "informator nie wystarczy", bo ma to być część większego podprogramu.

A teraz jak już wiesz, to proszę podziel się wiedzą.
A tego nie napisałeś, a ja nie lubię się domyślać.
mr_Pozostalo to pozostała ilość towaru tej dostawy. Odnosi się to ilości przyjętej z danej dostawy czyli mr_Ilosc.
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 06, 2015, 23:02:37

Cytuj
mr_Pozostalo to pozostała ilość towaru tej dostawy. Odnosi się to ilości przyjętej z danej dostawy czyli mr_Ilosc.

No tak, w dostawie ta wartość ma sens i jest zrozumiała. Można ją wygodnie wykorzystać do zliczenia aktualnej ilości towaru.

Ale co oznacza mr_Pozostało w przypadku sprzedaży?

Mam przykładowy towar:

mr_Id mr_DoId mr_SeriaId mr_PozId mr_TowId mr_MagId mr_Data mr_Ilosc mr_Pozostalo mr_Cena mr_Termin
6365 NULL 6365 6257 1 1 2009-11-25 00:00:00.000 250,00 0,00 46,17 NULL
6369 6365 6365 6262 1 NULL 2009-11-25 00:00:00.000 9,00 9,00 46,17 NULL
6372 6365 6365 6264 1 NULL 2009-11-25 00:00:00.000 40,00 40,00 46,17 NULL
6373 6365 6365 6265 1 NULL 2009-11-25 00:00:00.000 50,00 50,00 46,17 NULL
6378 6365 6365 6269 1 NULL 2009-11-25 00:00:00.000 100,00 70,00 46,17 NULL
6392 6365 6365 6298 1 NULL 2009-11-26 00:00:00.000 2,00 2,00 46,17 NULL
6402 6365 6365 6308 1 NULL 2009-11-26 00:00:00.000 10,00 10,00 46,17 NULL
6405 6365 6365 6368 1 NULL 2009-11-27 00:00:00.000 4,00 4,00 46,17 NULL
6407 6365 6365 6593 1 NULL 2009-12-07 00:00:00.000 10,00 10,00 46,17 NULL
6410 6365 6365 6604 1 NULL 2009-12-07 00:00:00.000 1,00 1,00 46,17 NULL
6712 6365 6365 7057 1 NULL 2009-12-28 00:00:00.000 20,00 20,00 46,17 NULL
6773 6365 6365 7137 1 NULL 2009-12-31 00:00:00.000 1,00 1,00 46,17 NULL
7016 6365 6365 7423 1 NULL 2010-01-13 00:00:00.000 3,00 3,00 46,17 NULL


Jak rozumieć piąty rekord? mr_Ilosc jest równa 100, a mr_Pozostało 70.

Sumując mr_Ilosc w wydaniach dostaję razem 250, co by odpowiadało całkowitej sprzedaży danej pozycji towaru, ale nadal
nie wiem co to za różnica w ilości o 30.
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: Aldo w Grudzień 07, 2015, 12:38:16
Łopatologicznie, to z dostawy towaru liczącej 100 szt. pozostało jeszcze 70 szt. Czyli 30 zostało sprzedane.
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 18, 2015, 12:49:12
Łopatologicznie, to z dostawy towaru liczącej 100 szt. pozostało jeszcze 70 szt. Czyli 30 zostało sprzedane.

Byłoby to jasne (co zresztą napisałem) gdyby ten wpis dotyczył faktury zakupu (nazwałem ją w swoim poście dostawą - bo myślę z pozycji magazynu).

Ale ten wpis dotyczy dokumentu sprzedaży. Dlatego nie mogę tego zrozumieć. Jak pozycja sprzedaży może mieć 100 a pozostało 70 ?
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: Aldo w Grudzień 18, 2015, 13:56:30
Łopatologicznie, to z dostawy towaru liczącej 100 szt. pozostało jeszcze 70 szt. Czyli 30 zostało sprzedane.

Byłoby to jasne (co zresztą napisałem) gdyby ten wpis dotyczył faktury zakupu (nazwałem ją w swoim poście dostawą - bo myślę z pozycji magazynu).

Ale ten wpis dotyczy dokumentu sprzedaży. Dlatego nie mogę tego zrozumieć. Jak pozycja sprzedaży może mieć 100 a pozostało 70 ?
Ta tabela nie dotyczy dokumentu sprzedaży, tylko, zgodnie z jej nazwą, ruchu towaru na magazynie. A z zapisanych pozycji wynika, że stan danego towaru ze 100 szt zmniejszył  się o 70 szt, a pozostało jeszcze 30 szt. (z danej dostawy).
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 18, 2015, 17:27:16
Ta tabela nie dotyczy dokumentu sprzedaży, tylko, zgodnie z jej nazwą, ruchu towaru na magazynie.

Masz rację! Uznałem skrótu myślowego sprzedaż=wydanie magazynowe, to mogło zmylić.
oczywiscie - myślimy cały czas o ruchu towaru na magazynie

Cytuj
A z zapisanych pozycji wynika, że stan danego towaru ze 100 szt zmniejszył  się o 70 szt, a pozostało jeszcze 30 szt. (z danej dostawy).

Jestem Ci mega wdzięczny że zainteresowałeś się moim tematem. Szanuję twoją wiedzę, ale muszę dopytać.

Gdybyś mógł spojrzeć na mój post z 6 grudnia. Dałem tam wynik SQLa w którym pytałem o ruch towaru o mr_ID=6365

Widać w tej tabeli pierwszy wpis, który mówi że przyszło 250 sztuk, a zostało (na dziś dzień) ZERO. To się zgadza, ale
ponizej mamy rekordy wydawania kolejnych sztuk tego towaru z magazynu.

Najpierw schodzi 5 sztuk, potem schodzi 40 sztuk itd... aż towar osiągnął obecny stan ZERO.

Ja nie potrafię zrozumieć, dlaczego we wszystkich wydaniach (oprócz tego 100/70 na piątej pozycji) w kolumnie mr_Pozostało jest taka sama ilość jak wychodzi.

Gdyby było tak jak napisałeś, to w pierwszym wydaniu powinno być: Ilość 9 Pozostało: 241,
w drugiej Ilość 40 Pozostało 201 itd.... a jest inaczej.

Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: Aldo w Grudzień 18, 2015, 20:44:22
Pewnie dlatego, że wpisy nie dą dodawane, tylko aktualizowane i zawsze masz ostatni stan. Inaczej ta tabela byłaby stąd do księżyca.
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: birds22 w Grudzień 18, 2015, 22:05:22
Ja nie potrafię zrozumieć, dlaczego we wszystkich wydaniach (oprócz tego 100/70 na piątej pozycji) w kolumnie mr_Pozostało jest taka sama ilość jak wychodzi.
Bo najprawdopodobniej było wydane 100  ale później z tego wydania był zwrot lub korekta na -30 . Zgadza się?
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 19, 2015, 00:22:58
Pewnie dlatego, że wpisy nie dą dodawane, tylko aktualizowane i zawsze masz ostatni stan. Inaczej ta tabela byłaby stąd do księżyca.

Aldo - zaglądałeś w ogóle do tej tabelki z przed 7 postów?

To co napisałeś się nie zgadza z danymi. O jakim jakim 'zawsze ostatnim stanie' mówisz? Ostatni stan to jest teraz zero.

Skoro byłyby aktualizowane, to dlaczego w każdym rekordzie w tym polu pozycji jest co innego?

Umówmy się, że na ten moment nie wiesz tak samo jak ja co jest w pozycji mr_Pozostało przy wydaniach magazynowych i tylko gdybasz.

Nie zmienia to faktu, że jestem Ci wdzięczny za zainteresowanie tematem :)

Cytuj
Bo najprawdopodobniej było wydane 100  ale później z tego wydania był zwrot lub korekta na -30 . Zgadza się?

O tym nie pomyślałem. Przy czym gdyby tak było to na stan powinno pojawić się te 30 zwróconych sztuk. Chyba że pojawiają się już pod nowym mr_ID.
Widać muszę sam dopasować te wpisy w bazie danych do faktur w subiekcie i sprawdzić krok po kroku.

Ale dziękuję za trop!
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: SlawekPL w Grudzień 19, 2015, 00:49:37
Bo najprawdopodobniej było wydane 100  ale później z tego wydania był zwrot lub korekta na -30 . Zgadza się?

Bingo!

Rozszerzyłem zapytanie dotyczące ruchu towaru o powiązanie z mr_SeriaID:

SELECT *
  FROM dok_MagRuch
  where mr_DoId=6365 or mr_Id=6365 or mr_SeriaID=6365

I znalazła się brakująca korekta, oraz sprzedaż z towarów które tą korektą wróciły (4 ostatnie linijki)

mr_Id mr_DoId mr_SeriaId mr_PozId mr_TowId mr_MagId mr_Data mr_Ilosc mr_Pozostalo mr_Cena mr_Termin
6365 NULL 6365 6257 1 1 2009-11-25 00:00:00.000 250,00 0,00 46,17 NULL
6369 6365 6365 6262 1 NULL 2009-11-25 00:00:00.000 9,00 9,00 46,17 NULL
6372 6365 6365 6264 1 NULL 2009-11-25 00:00:00.000 40,00 40,00 46,17 NULL
6373 6365 6365 6265 1 NULL 2009-11-25 00:00:00.000 50,00 50,00 46,17 NULL
6378 6365 6365 6269 1 NULL 2009-11-25 00:00:00.000 100,00 70,00 46,17 NULL
6392 6365 6365 6298 1 NULL 2009-11-26 00:00:00.000 2,00 2,00 46,17 NULL
6402 6365 6365 6308 1 NULL 2009-11-26 00:00:00.000 10,00 10,00 46,17 NULL
6405 6365 6365 6368 1 NULL 2009-11-27 00:00:00.000 4,00 4,00 46,17 NULL
6407 6365 6365 6593 1 NULL 2009-12-07 00:00:00.000 10,00 10,00 46,17 NULL
6410 6365 6365 6604 1 NULL 2009-12-07 00:00:00.000 1,00 1,00 46,17 NULL
6712 6365 6365 7057 1 NULL 2009-12-28 00:00:00.000 20,00 20,00 46,17 NULL
6773 6365 6365 7137 1 NULL 2009-12-31 00:00:00.000 1,00 1,00 46,17 NULL
7016 6365 6365 7423 1 NULL 2010-01-13 00:00:00.000 3,00 3,00 46,17 NULL
7426 6378 6365 8006 1 1 2010-02-18 00:00:00.000 30,00 0,00 46,17 NULL
7660 7426 6365 8358 1 NULL 2010-03-09 00:00:00.000 7,00 7,00 46,17 NULL
8937 7426 6365 8688 1 NULL 2010-03-18 00:00:00.000 20,00 20,00 46,17 NULL
8942 7426 6365 9523 1 NULL 2010-04-21 00:00:00.000 3,00 3,00 46,17 NULL

Korekta z jednej stronie aktualizuje mr_Pozostało w wydaniu, a zarazem tworzy nowy mr_Id ze zwracanymi pozycjami.

Czyli moje zapytanie z pierwszego posta powinno być dobre bo (nieco przypadkiem) prawidłowo obejmuje korekty.

Dziękuję za wskazówki wszystkim którzy się odezwali!
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: mstraczkowski w Luty 08, 2018, 19:43:50
Zostawiam dla potomnych, bo straciłem kilka dni (załącznik)
Tytuł: Odp: Stan towaru na dany dzień.
Wiadomość wysłana przez: dkozlowski w Luty 08, 2018, 19:58:18
Gdybyś skorzystał z moje porady i zobaczył jak wartości te wylicza program to zajęłoby ci to jakieś 15-30 minut, ale zrobiłeś po swojemu... Poza tym zapytanie nie jest poprawne, zbędnie dotykasz tabeli zmian cen dostaw skoro interesuje Cię tylko stan magazynowy...