wydruk zamówienia - pozycje niezrealizowane

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

arekp
Posty: 6
Rejestracja: 16 paź 2013, 15:23
Rola: Użytkownik CDN XL
Wersja: 2013.2

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: arekp »

A czy jest możliwość utworzenia takiego filtra, który wyświetli zamówienia do których przypisane są zasoby do wszystkich elementów zamówienia?
taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: taszek »

Nie bardzo rozumię tą część zdania:
arekp pisze:wyświetli zamówienia do których przypisane są zasoby do wszystkich elementów zamówienia?
Chodzi ci, aby filtr pokazał zamówienia niezrealizowane, które już możesz w całości zrealizować, ponieważ brakujący towar już znajduje się na magazynie?
Pozdrawiam
Wojtek Cyrklewicz
arekp
Posty: 6
Rejestracja: 16 paź 2013, 15:23
Rola: Użytkownik CDN XL
Wersja: 2013.2

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: arekp »

Chodzi ci, aby filtr pokazał zamówienia niezrealizowane, które już możesz w całości zrealizować, ponieważ brakujący towar już znajduje się na magazynie?
Dokładnie mam na myśli taką sytuację
taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: taszek »

Kod: Zaznacz cały

ZaN_GIDNumer in (
SELECT DISTINCT REZ1.Rez_ZrdNumer
FROM CDN.Rezerwacje REZ1
LEFT JOIN (SELECT TwZ_TwrNumer, SUM(TwZ_Ilosc) MagIl
			FROM CDN.TwrZasoby
			GROUP BY TwZ_TwrNumer
	) MagIlosc ON MagIlosc.TwZ_TwrNumer = Rez_TwrNumer
LEFT JOIN ( SELECT COUNT(src.Mag) Licznik_Mag, src.Mag
			FROM(
				SELECT Rez_ZrdNumer as 'Mag'
				FROM CDN.TwrZasoby
				JOIN CDN.Rezerwacje ON Rez_TwrNumer = TwZ_TwrNumer 
				GROUP BY TwZ_TwrNumer, Rez_ZrdNumer
			) src
			GROUP BY src.Mag
	) Magazyn ON Magazyn.Mag = REZ1.Rez_ZrdNumer
LEFT JOIN ( SELECT COUNT(Rez_ZrdNumer) Licznik_Rez, Rez_ZrdNumer
		FROM CDN.Rezerwacje	
		GROUP BY Rez_ZrdNumer
	) Rezerwacje ON Rezerwacje.Rez_ZrdNumer = REZ1.Rez_ZrdNumer
WHERE Magazyn.Licznik_Mag = Rezerwacje.Licznik_Rez
GROUP BY Rez_ZrdTyp, Rez1.Rez_ZrdNumer, Rez_ZrdLp, Rez_TwrNumer, MagIl, Licznik_Mag, Rezerwacje.Licznik_Rez
HAVING ((CAST(SUM(ISNULL(Rez_Ilosc,0) - ISNULL(Rez_IloscMag,0) - ISNULL(Rez_Zrealizowano,0) - ISNULL(Rez_IloscImp,0) - ISNULL(Rez_IloscSAD,0) - ISNULL(Rez_IloscSSC,0)) as DECIMAL(10,0))) < (ISNULL(MagIlosc.MagIl, 0)))
)
Pozdrawiam
Wojtek Cyrklewicz
arekp
Posty: 6
Rejestracja: 16 paź 2013, 15:23
Rola: Użytkownik CDN XL
Wersja: 2013.2

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: arekp »

Filtr świetnie działa, pokazuje zamówienia w których niektóre elementy mają już przypisane zasoby, a czy można go zmodyfikować tak, aby wyświetlał zamówienia w których zasoby są przypisane do wszystkich elementów?
taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: taszek »

Czyli ma pokazywać zamówienia dla których są już stany dla wszystkich elementów na magazynie i są one zarezerowane?
Pozdrawiam
Wojtek Cyrklewicz
arekp
Posty: 6
Rejestracja: 16 paź 2013, 15:23
Rola: Użytkownik CDN XL
Wersja: 2013.2

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: arekp »

Czyli ma pokazywać zamówienia dla których są już stany dla wszystkich elementów na magazynie i są one zarezerowane?
są zarezerwowane i mają przypisaną dostawę.
taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: taszek »

Bry

Nie miałem czasu, aby wcześniej się tym zająć, ale udało się w końcu.

Proszę o to filtr:

Kod: Zaznacz cały

SELECT REZ1.Rez_ZrdNumer
FROM CDN.Rezerwacje REZ1
LEFT JOIN (SELECT TwZ_TwrNumer, SUM(TwZ_Ilosc) MagIl
         FROM CDN.TwrZasoby
		 JOIN CDN.TwrKarty ON TwZ_TwrTyp = Twr_GIDTyp AND TwZ_TwrNumer = Twr_GIDNumer
			WHERE Twr_Typ in (1,2)
         GROUP BY TwZ_TwrNumer
   ) MagIlosc ON MagIlosc.TwZ_TwrNumer = Rez_TwrNumer
LEFT JOIN ( SELECT COUNT(src.Mag) Licznik_Mag, src.Mag
         FROM(
            SELECT Rez_ZrdNumer as 'Mag'
            FROM CDN.TwrZasoby
            JOIN CDN.Rezerwacje ON Rez_TwrNumer = TwZ_TwrNumer 
			JOIN CDN.TwrKarty ON Rez_TwrTyp = Twr_GIDTyp AND Rez_TwrNumer = Twr_GIDNumer
			WHERE Twr_Typ in (1,2) 
            GROUP BY TwZ_TwrNumer, Rez_ZrdNumer
         ) src
         GROUP BY src.Mag
   ) Magazyn ON Magazyn.Mag = REZ1.Rez_ZrdNumer
LEFT JOIN ( SELECT COUNT(Rez_ZrdNumer) Licznik_Rez, Rez_ZrdNumer
			FROM CDN.Rezerwacje
			JOIN CDN.TwrKarty ON Rez_TwrTyp = Twr_GIDTyp AND Rez_TwrNumer = Twr_GIDNumer
			WHERE Twr_Typ in (1,2) 
			GROUP BY Rez_ZrdNumer
   ) Rezerwacje ON Rezerwacje.Rez_ZrdNumer = REZ1.Rez_ZrdNumer
LEFT JOIN ( SELECT COUNT(Rez_DstNumer) Licznik_Dst, Rez_ZrdNumer 
			FROM CDN.Rezerwacje
			JOIN CDN.TwrKarty ON Rez_TwrTyp = Twr_GIDTyp AND Rez_TwrNumer = Twr_GIDNumer
			where Twr_Typ in (1,2) AND Rez_DstNumer > 0
			GROUP BY Rez_ZrdNumer, Rez_DstNumer
) Dostawy ON Dostawy.Rez_ZrdNumer = REZ1.Rez_ZrdNumer
JOIN CDN.TwrKarty ON Rez1.Rez_TwrTyp = Twr_GIDTyp AND Rez1.Rez_TwrNumer = Twr_GIDNumer 
WHERE Twr_Typ in (1,2) AND Rezerwacje.Licznik_Rez = Dostawy.Licznik_Dst AND Magazyn.Licznik_Mag = Rezerwacje.Licznik_Rez
GROUP BY Rez1.Rez_ZrdNumer, MagIlosc.MagIl
HAVING ((CAST(SUM(ISNULL(Rez_Ilosc,0) - ISNULL(Rez_IloscMag,0) - ISNULL(Rez_Zrealizowano,0) - ISNULL(Rez_IloscImp,0) - ISNULL(Rez_IloscSAD,0) - ISNULL(Rez_IloscSSC,0)) as DECIMAL(10,0))) <= (ISNULL(MagIlosc.MagIl, 0)))
Pozdrawiam
Wojtek Cyrklewicz
elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: elmiq »

Nie prościej tak?

Kod: Zaznacz cały

SELECT Rez_ZrdNumer
FROM 
(
SELECT *
FROM CDN.Rezerwacje
WHERE Rez_ZrdTyp = 960
) AS Wew
WHERE 
EXISTS (SELECT 1 FROM CDN.TwrZasoby WHERE TwZ_DstNumer = Rez_DstNumer)  -- Wyeliminowanie błędów (XL czasami zostawia takie śmieci - najlepiej to wyczyścić osobnym skryptem)
GROUP BY Rez_ZrdNumer
HAVING SUM(CASE WHEN Rez_DstNumer <> 0 THEN 1 ELSE 0 END) = COUNT(Rez_GIDNumer)  -- Sprawdzenie czy każda pozycja ma w pełni przypisany zasób
Jeżeli na bieżąco weryfikuje się poprawność rezerwacji w systemie, to nie ma potrzeby porównywać ilości.

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/
taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: wydruk zamówienia - pozycje niezrealizowane

Post autor: taszek »

Jasne, że prościej, ale u mnie w firmie to się nie zda, gdyż przetestowałem twój filtr i pokazuje mi zlecenia, gdzie np. mam do realizacji 10szt., 2szt. już przyszły a 8 szt. nadal nie ma dostawy określonej.
Pozdrawiam
Wojtek Cyrklewicz
ODPOWIEDZ