STAY_PJE pisze: ↑19 gru 2018, 16:13
[...]
Czy dobrze to rozumiem?
Dokładnie tak. Dzieje się to tylko wówczas kiedy mamy większe ilości magazynierów i magazynów oraz rozdzielamy dokumenty miedzy nimi a dodatkowo jest różnica w czasie pomiędzy wydaniem towaru a przyjęciem. Mamy tu wtedy taki efekt że część towaru jest nie w magazynach a w drodze do nich. Wtedy to mamy tak że MMW i WM zatwierdzone a MMP czeka sobie na to aż magazynier na kolejnym magazynie przyjmie towar. Różnica między zatwierdzeniem WM a MMP to nawet kilka dni.
Tak na marginesie:
Jest to pewnie specyfika firmy, bo znam drugą która ma więcej magazynów i pracowników. Tam ten efekt wystąpił tylko raz, przy czym ich magazyny znajdują się bardzo blisko siebie dlatego MMW i MMP zatwierdzane od razu. Na nieszczęście właśnie po inwentaryzacji okazało się, że z jakiegoś powodu nie utworzone zostały MMP i nikt nie zauważył, że towar o wartości prawie 0,5 mln został policzony jako nadwyżka. W zasadzie wystarczyło tylko w XL-u na liście dokumentów wewnętrznych, na zakładce MMW wybrać w filtrze "bez MMP" i pewnie wszystko było by jasne. Stąd też przyszło mi do głowy, że może się takie coś przydać.
Przejrzałem sobie swoją procedurę postępowania przed-inwentaryzacjnego.
Korzystam czasem z takiego zapytania (poniżej) które sprawdza partie towarów i zasoby. Nigdzie w programie nie znalazłem czegoś co by sprawdzało stany towarów w taki sposób i nawet testy integralności nie wykazywały błędów z niektórymi towarami. Mimo to zdarzało się, że na dokumentach działy się różne cuda i czasem nie można było dodać takiego towaru do dokumentu pomimo, że widniały zasoby czasem nie można było utworzyć WM.
Kod: Zaznacz cały
;WITH TPA as
(
select isnull(tzmtpa,twztpa) as TPA_ID
,isnull(tzmmag,twzmag) as Mag
,isnull(twzil,0) as twzil
,isnull(tzmil,0) as tzmil
from (select tpa_id as tzmtpa,tzm_magnumer as tzmmag,sum(tzm_ilosc) as tzmil from cdn.twrzasobymag join cdn.twrpartie on tpa_id=tzm_tpaid
--where tzm_magnumer=100
group by tpa_id,tzm_magnumer having sum(tzm_ilosc)>0) tzm
full outer join (select dst_tpaid as twztpa,twz_magnumer as twzmag,sum(twz_ilmag) as twzil from cdn.twrzasoby join cdn.dostawy on dst_gidnumer=twz_dstnumer
--where twz_magnumer=100
group by dst_tpaid,twz_magnumer having sum(twz_ilmag)>0) twz ON twztpa=tzmtpa and tzmmag=twzmag
where tzmil<>twzil or tzmil is null or twzil is null --order by isnull(tzmtpa,twztpa)
)
select Twr_Kod,Twr_Nazwa, TPA.TPA_ID, tpa.Mag, TPA.twzil, TPA.tzmil from cdn.TwrKarty join cdn.TwrPartie as Partie on Partie.TPa_TwrNumer = Twr_GIDNumer
join TPA on TPA.TPA_ID = Partie.TPa_Id
Nie jest to może elegancko przedstawione ale może się komuś przydać. Towary które tutaj się wyświetlą wrzucam do Naprawy stanów towarów. Można szukać wg magazynu - w zapytaniu jako komentarz
Bardzo podoba mi się ten poradnik do inwentaryzacji. Na pewno dla mniej doświadczonych lektura obowiązkowa, bo takie rzeczy wypracowuje się przez pewien czas. Z ulgą mogę powiedzieć, że wszystkie punkty realizuję zatem model postępowania mam podobny. Różnica to tylko wyżej wymienione dwa elementy.