If ZQueryGepek.IsEmpty Then Exit; // Kiszámoljuk mikor kell az adott gép következő felülvizsgálatát megejteni PKod := ZQueryGepekgep_munkaeszkoz_pkod.Value; TKod := ZQueryGepekgep_munkaeszkoz_tkod.Value; GKod := ZQueryGepekgep_munkaeszkoz_kod.Value; // üzembehelyezést megelöző ZQueryVizsgalat.Close; ZQueryVizsgalat.SQL.Clear; ZQueryVizsgalat.SQL.Add('select datum_keltido from gep_jegyzokonyv'); ZQueryVizsgalat.SQL.Add('where (gep_jegyzokonyv_pkod=:pkod) and'); ZQueryVizsgalat.SQL.Add('(gep_jegyzokonyv_tkod=:tkod) and'); ZQueryVizsgalat.SQL.Add('(gep_jegyzokonyv_gkod=:gkod) and'); ZQueryVizsgalat.SQL.Add('((tipus=:mytipus) or (tipus=:mytipus2))'); ZQueryVizsgalat.SQL.Add('order by datum_keltido desc'); ZQueryVizsgalat.Params[0].Value := PKod; ZQueryVizsgalat.Params[1].Value := TKod; ZQueryVizsgalat.Params[2].Value := GKod; ZQueryVizsgalat.Params[3].Value := 'Munkavédelmi szempontú előzetes felülvizsgálat'; ZQueryVizsgalat.Params[4].Value := 'Használatba vételt megelőző munkavédelmi szempontú előzetes vizsgálat'; ZQueryVizsgalat.Open; ZQueryVizsgalat.First; If ZQueryVizsgalat.FieldByName('datum_keltido').IsNull Then Datum := 0 Else Datum := ZQueryVizsgalat.FieldByName('datum_keltido').Value; //Időszakos biztonságtechnikai felülvizsgálat (5 évente általában) ZQueryVizsgalat.Close; ZQueryVizsgalat.Params[0].Value := PKod; ZQueryVizsgalat.Params[1].Value := TKod; ZQueryVizsgalat.Params[2].Value := GKod; ZQueryVizsgalat.Params[3].Value := 'Időszakos biztonságtechnikai felülvizsgálat'; ZQueryVizsgalat.Open; ZQueryVizsgalat.First; If ZQueryVizsgalat.FieldByName('datum_keltido').IsNull Then Datum1 := 0 Else Datum1 := ZQueryVizsgalat.FieldByName('datum_keltido').Value; // Szerkezeti vizsgálat ZQueryVizsgalat.Close; ZQueryVizsgalat.Params[0].Value := PKod; ZQueryVizsgalat.Params[1].Value := TKod; ZQueryVizsgalat.Params[2].Value := GKod; ZQueryVizsgalat.Params[3].Value := 'Szerkezeti vizsgálat'; ZQueryVizsgalat.Open; ZQueryVizsgalat.First; If ZQueryVizsgalat.FieldByName('datum_keltido').IsNull Then Datum2 := 0 Else Datum2 := ZQueryVizsgalat.FieldByName('datum_keltido').Value; // Fővizsgálat ZQueryVizsgalat.Close; ZQueryVizsgalat.Params[0].Value := PKod; ZQueryVizsgalat.Params[1].Value := TKod; ZQueryVizsgalat.Params[2].Value := GKod; ZQueryVizsgalat.Params[3].Value := 'Fővizsgálat'; ZQueryVizsgalat.Open; ZQueryVizsgalat.First; If ZQueryVizsgalat.FieldByName('datum_keltido').IsNull Then Datum3 := 0 Else Datum3 := ZQueryVizsgalat.FieldByName('datum_keltido').Value; // Gépvizsgálat ZQueryVizsgalat.Close; ZQueryVizsgalat.SQL.Clear; ZQueryVizsgalat.SQL.Add('select datum_keltido from gep_jegyzokonyv'); ZQueryVizsgalat.SQL.Add('where (gep_jegyzokonyv_pkod=:pkod) and'); ZQueryVizsgalat.SQL.Add('(gep_jegyzokonyv_tkod=:tkod) and'); ZQueryVizsgalat.SQL.Add('(gep_jegyzokonyv_gkod=:gkod) and'); ZQueryVizsgalat.SQL.Add('((tipus=:mytipus) or (tipus=:mytipus2))'); ZQueryVizsgalat.SQL.Add('order by datum_keltido desc'); ZQueryVizsgalat.Params[0].Value := PKod; ZQueryVizsgalat.Params[1].Value := TKod; ZQueryVizsgalat.Params[2].Value := GKod; ZQueryVizsgalat.Params[3].Value := 'Ellenőrző felülvizsgálat'; ZQueryVizsgalat.Params[4].Value := 'Időszakos ellenőrző felülvizsgálat'; ZQueryVizsgalat.Open; ZQueryVizsgalat.First; If ZQueryVizsgalat.FieldByName('datum_keltido').IsNull Then Datum4 := 0 Else Datum4 := ZQueryVizsgalat.FieldByName('datum_keltido').Value; If Not ZQueryGepek.IsEmpty Then Begin Selejt := Not ZQueryGepek.FieldByName('datum_selejtezes').IsNull; // vizsgálati idők lekérdezése If Not ZQueryGepek.FieldByName('idobizt').IsNull Then Honap1 := ZQueryGepek.FieldByName('idobizt').AsInteger Else Honap1 := -1; If Not ZQueryGepek.FieldByName('idoszerk').IsNull Then Honap2 := ZQueryGepek.FieldByName('idoszerk').AsInteger Else Honap2 := -1; If Not ZQueryGepek.FieldByName('idofov').IsNull Then Honap3 := ZQueryGepek.FieldByName('idofov').AsInteger Else Honap3 := -1; If Not Selejt Then Begin // Ha valamelyik vizsgálat még nem volt, akkor az üzembehelyezést megelözőhőz // kell viszonyítani a következő felülvizsgálatok idejét If Datum <> 0 Then // Csak a munkavédelmihez lehet viszonyítani Begin If (Honap1 <> -1) And (Datum1 = 0) Then Datum1 := Datum; If (Honap2 <> -1) And (Datum2 = 0) Then Datum2 := Datum; If (Honap3 <> -1) And (Datum3 = 0) Then Datum3 := Datum; If (Honap1 <> -1) And (Datum4 = 0) Then Datum4 := Datum; End; // Ha a Szerkezeti vizsgálat kisebb, mint a Fővizsgálat (létező vizsgálat) If Datum2 < Datum3 Then Datum2 := Datum3; // Ha a Szerkezeti vizsgálat kisebb, mint az Időszakos (létező vizsgálat) If Datum2 < Datum1 Then Datum2 := Datum1; // Ha a Fővizsgálat kisebb, mint az Időszakos (létező vizsgálat) If Datum3 < Datum1 Then Datum3 := Datum1; // IDŐSZAKOS BIZTONSÁGTECHNIKAI If (Honap1 <> -1) And ((ZQueryGep_Jegyzokonyvtipus.Value <> 'Ellenőrző felülvizsgálat') Or (ZQueryGep_Jegyzokonyvtipus.Value <> 'Időszakos ellenőrző felülvizsgálat')) And (POS('Nem veszélyes', ZQueryGep_Jegyzokonyvfajta.Value) = 0) And (Datum1 <> 0) Then Begin Datum1 := IncMonth(Datum1, Honap1); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum1); Label26.Caption := Szoveg; End; If ZQueryGep_Jegyzokonyvgepfocsop.Value <> 'Technológiai gép' Then Begin // Ha más berendezésről van szó, akkor van szerkezeti és fő vizsgálat is // FŐVIZSGÁLAT If Datum3 <> 0 Then Begin//Fővizsgálat If (Honap3 <> -1) Then Begin Datum3 := IncMonth(Datum3, Honap3); If Datum1 < Datum3 Then // Ha IB kisebb mint a következő Fővizsgálat Begin // Megnézzük, hány hónap van köztük If Abs(MonthSpan(Datum1, Datum3)) < Honap3 Then // Ha ez kisebb, mint amennyinek el kellett volna telnie, akkor Begin // Az IB-től számoljuk a vizsgálatot DecodeDate(Datum1, Year1, Month1, Day1); Datum3 := IncMonth(Datum1, Honap3); End; End; DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum3); Label25.Caption := Szoveg; End Else Label25.Caption := 'Hiányzó adat!'; End; // SZERKEZETI VIZSGÁLAT If Datum2 <> 0 Then Begin If (Honap2 <> -1) Then Begin If Datum2 > Datum Then // Ha szerkezeti vizsgálat ideje az üzembehelyezésnél nagyobb Datum2 := IncMonth(Datum2, Honap2) Else // Ha nem nagyobb, akkor újraindás volt valószínűleg, és ehhez viszonyítunk szerketei vizsgálatot Datum2 := IncMonth(Datum, Honap2); If Datum1 < Datum2 Then // Ha IB kisebb mint a következő Szerkezeti vizsgálat Begin // Megnézzük, hány hónap van köztük If Abs(MonthSpan(Datum1, Datum2)) < Honap2 Then // Ha ez kisebb, mint amennyinek el kellett volna telnie, akkor Begin // Az IB-től számoljuk a vizsgálatot DecodeDate(Datum1, Year1, Month1, Day1); Datum2 := IncMonth(Datum1, Honap2); End; End; DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum2); Label24.Caption := Szoveg; End Else Label24.Caption := 'Hiányzó adat!'; End; // ha a szerkezeti vizsgálat azonos lenne a fővizsgálattal DecodeDate(Datum2, Year1, Month1, Day1); DecodeDate(Datum3, Year2, Month2, Day2); If (Year1=Year2) and (Month1=Month2) Then begin // a szerkezeti vizsgálatot a fővizsgálathoz kell viszonyítani Datum2 := Datum3; Datum2 := IncMonth(Datum2, Honap2); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum2); Label24.Caption := Szoveg; end; End; {If ZQueryGepekgepfocsoport.Value <> 'Technológiai gép' Then Begin // Ha más berendezésről van szó, akkor van szerkezeti és fő vizsgálat is If Datum2 <> 0 Then Begin//szerkezeti vizsgálat If (Honap2 <> -1) Then Begin If Datum2 > Datum Then // Ha szerkezeti vizsgálat ideje az üzembehelyezésnél nagyobb Datum2 := IncMonth(Datum2, Honap2) Else // Ha nem nagyobb, akkor újraindás volt valószínűleg, és ehhez viszonyítunk szerketei vizsgálatot Datum2 := IncMonth(Datum, Honap2); If Datum1 < Datum2 Then // Ha IB kisebb mint a következő Szerkezeti vizsgálat Begin // Megnézzük, hány hónap van köztük If Abs(MonthSpan(Datum1, Datum2)) < Honap2 Then // Ha ez kisebb, mint amennyinek el kellett volna telnie, akkor Begin // Az IB-től számoljuk a vizsgálatot DecodeDate(Datum1, Year1, Month1, Day1); Datum2 := IncMonth(Datum1, Honap2); End; End; DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum2); Label24.Caption := Szoveg; End Else Label24.Caption := 'Hiányzó adat!'; End; // ha a szerkezeti vizsgálat azonos lenne a fővizsgálattal DecodeDate(Datum2, Year1, Month1, Day1); DecodeDate(Datum3, Year2, Month2, Day2); If (Year1=Year2) and (Month1=Month2) Then begin // a szerkezeti vizsgálatot a fővizsgálathoz kell viszonyítani Datum2 := Datum3; Datum2 := IncMonth(Datum2, Honap2); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum2); Label24.Caption := Szoveg; end; If Datum3 <> 0 Then Begin//Fővizsgálat If (Honap2 <> -1) Then Begin If Datum3 > Datum1 Then // Ha a Fővizsgálat ideje az időszakosnál nagyobb Datum3 := IncMonth(Datum3, Honap3) Else Datum3 := IncMonth(Datum1, Honap3); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum3); Label25.Caption := Szoveg; End Else Label25.Caption := 'Hiányzó adat!'; End; End; If (Honap1 <> -1) And ((ZQueryGep_Jegyzokonyvtipus.Value <> 'Ellenőrző felülvizsgálat') Or (ZQueryGep_Jegyzokonyvtipus.Value <> 'Időszakos ellenőrző felülvizsgálat')) And (POS('Nem veszélyes', ZQueryGep_Jegyzokonyvfajta.Value) = 0) And (Datum1 <> 0) Then Begin Datum1 := IncMonth(Datum1, Honap1); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum1); Label26.Caption := Szoveg; // Ellenőrizzük, hogy ne legyen kavar a fővizsgálattal If (Datum3-Datum1) > 0 Then Begin DecodeDate(Datum1, Year1, Month1, Day1); DecodeDate(Datum3, Year2, Month2, Day2); If (Year1-Year2)*12 < Honap3 Then Begin Datum3 := IncMonth(Datum1, Honap3); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum3); Label25.Caption := Szoveg; End; End; End; } If (Honap1 <> -1) And ((ZQueryGep_Jegyzokonyvtipus.Value = 'Ellenőrző felülvizsgálat') Or (ZQueryGep_Jegyzokonyvtipus.Value = 'Időszakos ellenőrző felülvizsgálat') Or (POS('Nem veszélyes', ZQueryGep_Jegyzokonyvfajta.Value) <> 0)) And (Datum4 <> 0) Then Begin Datum1 := IncMonth(Datum4, Honap1); DateTimeToString(Szoveg,'yyyyy. mm. dd.',Datum1); Label19.Caption := Szoveg; End; End; If Selejt Then Label24.Caption := 'SELEJTEZVE'; End;