Kod: Tümünü seç
declare @modelkod varchar(50)= 'MM'
declare @xmiktar int =5
declare @mesbas datetime = (select top 1 firsttime from Urt_WorkTimeGlobal)
declare @mesbit datetime = (select top 1 lasttime from Urt_WorkTimeGlobal)
declare @xtar datetime --= '01.01.2015 07:02:00'
declare @xmesbas varchar(9) =' '+(select top 1 convert(varchar,firsttime,108) from Urt_WorkTimeGlobal)
declare @xmesbit varchar(9) =' '+(select top 1 convert(varchar,LastTime, 108) from Urt_WorkTimeGlobal)
declare @miktar int , @bastar datetime , @proses varchar(5),@tzaman int,@bittar datetime
declare @tgun int, @tsaat int, @tdakika int --toplam gun, saat, dakika ilgili proseste ne kadar işlem göreceği
declare @fgun int, @fsaat int, @fdakika int --fark gun , saat , dakika mesai süresi sonunda iş bitmez ise ertesi güne nekadar ilave edileceğini hesaplar
declare @topmesdak int =datediff(MINUTE,@mesbas,@mesbit) -- bir günde toplam kaç dakika çalışılır
declare @artikzaman int
DECLARE xcursor CURSOR FOR
select /*p.Giren*/@xmiktar,cast(convert(varchar,p.TerminTar,104)+@xmesbas as datetime),mp.Proses,mp.PTime*@xmiktar from Urt_Plan_gch p
left join model_p mp on mp.modelkod=p.SKOD
where p.Mrptedariktipi=0 and mp.modelkod =@modelkod order by mp.ProsesNo
OPEN xcursor
FETCH NEXT FROM xcursor into @miktar,@bastar,@proses,@tzaman
WHILE @@FETCH_STATUS=0
BEGIN
set @tgun = @tzaman / @topmesdak
set @tsaat = @tzaman % @topmesdak / 60
set @tdakika = @tzaman % @topmesdak % 60
set @bittar = dateadd(DAY,@tgun,dateadd(hour,@tsaat,dateadd(MINUTE,@tdakika,@bastar)))
set @xtar =dateadd(minute,@tzaman,@bastar)
set @xtar = dateadd(DAY,@tgun,dateadd(hour,@tsaat,dateadd(MINUTE,@tdakika,@bastar)))
set @bittar=@xtar
if ((substring(cast(cast(@xtar as float)-floor(cast(@xtar as float))as varchar),3,20) >= substring(cast(cast(@mesbas as float)-floor(cast(@mesbas as float))as varchar),3,20))
and (substring(cast(cast(@xtar as float)-floor(cast(@xtar as float))as varchar),3,20) <= substring(cast(cast(@mesbit as float)-floor(cast(@mesbit as float))as varchar),3,20)))
begin
select @proses as proses,@bastar as bastar,@bittar as bittar--'mesai içi',@tgun,@tsaat,@tdakika,@fgun,@fsaat,@fdakika,@artikzaman,@miktar
--substring(cast(cast(@xtar as float)-floor(cast(@xtar as float))as varchar),3,20),substring(cast(cast(@mesbas as float)-floor(cast(@mesbas as float))as varchar),3,20),substring(cast(cast(@mesbit as float)-floor(cast(@mesbit as float))as varchar),3,20)
set @bastar=@bittar
end
else
begin
set @artikzaman=datediff(minute,convert(varchar,@bittar,104)+@xmesbit,@bittar)
--/*
if @artikzaman / @topmesdak=0
begin
set @fgun =@artikzaman / @topmesdak+1
set @fsaat = abs(@artikzaman % @topmesdak / 60)
set @fdakika = abs(@artikzaman % @topmesdak % 60)
end
else
begin
set @fgun =0
set @fsaat = 12-abs(@artikzaman % @topmesdak / 60)
set @fdakika = 60-abs(@artikzaman % @topmesdak % 60)
end
--*/
--set @fsaat = abs(@artikzaman % @topmesdak / 60)
--set @fdakika = abs(@artikzaman % @topmesdak % 60)
set @bittar = dateadd(day,@fgun,dateadd(HOUR,@fsaat,dateadd(MINUTE,@fdakika,convert(varchar,@bittar,104)+@xmesbas)))
select @proses as proses,@bastar as bastar,@bittar as bittar--,'mesai dışı',@tgun,@tsaat,@tdakika,@fgun,@fsaat,@fdakika,@artikzaman,@miktar
--substring(cast(cast(@xtar as float)-floor(cast(@xtar as float))as varchar),3,20),substring(cast(cast(@mesbas as float)-floor(cast(@mesbas as float))as varchar),3,20),substring(cast(cast(@mesbit as float)-floor(cast(@mesbit as float))as varchar),3,20)
--set @bastar=@bittar
end
FETCH NEXT FROM xcursor into @miktar,@bastar,@proses,@tzaman
set @bastar=@bittar
END
CLOSE xcursor
DEALLOCATE xcursor
/*
1.senaryo***************************************************************
miktar = 35 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =20 --> 20*35 = 700 dakika
2.proses işlem zamanı =72 --> 72*35 = 2520 dakika
3.proses işlem zamanı =63 --> 63*35 = 2205 dakika
4.proses işlem zamanı =91 --> 91*35 = 3185 dakika
1.proses 10.02.2015 08:00 1 gun 0 saat 40 dakika --> 11.02.2015 08:40
2.proses 11.02.2015 08:40 3 gun 9 saat 00 dakika --> 14.02.2015 17:40
3.proses 14.02.2015 17:40 3 gun 3 saat 45 dakika --> 18.02.2015 10:25 --> 17.02.2015 21:25 --> 02 saat 25 dakika fark -->
4.proses 18.02.2015 10:25 4 gun 9 saat 05 dakika --> 23.02.2015 08:30 --> 22.02.2015 19:30 --> 00 saat 30 dakika fark -->
2.senaryo***************************************************************
miktar = 35 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =10 --> 10*35 = 350 dakika
2.proses işlem zamanı =72 --> 72*35 = 2520 dakika
3.proses işlem zamanı =63 --> 63*35 = 2205 dakika
4.proses işlem zamanı =91 --> 91*35 = 3185 dakika
1.proses 10.02.2015 08:00 0 gun 5 saat 50 dakika --> 10.02.2015 13:50
2.proses 10.02.2015 13:50 3 gun 9 saat 00 dakika --> 14.02.2015 11:50 --> 13.02.2015 22:50 --> 03 saat 50 dakika fark -->
3.proses 14.02.2015 11:50 3 gun 3 saat 45 dakika --> 17.02.2015 15:35
4.proses 17.02.2015 15:35 4 gun 9 saat 05 dakika --> 22.02.2015 13:40 --> 22.02.2015 00:40 --> 05 saat 40 dakika fark -->
3.senaryo***************************************************************
miktar = 35 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =5 --> 05*35 = 175 dakika
2.proses işlem zamanı =72 --> 72*35 = 2520 dakika
3.proses işlem zamanı =63 --> 63*35 = 2205 dakika
4.proses işlem zamanı =91 --> 91*35 = 3185 dakika
1.proses 11.02.2015 08:00 0 gun 2 saat 55 dakika --> 11.02.2015 10:55
2.proses 11.02.2015 10:55 3 gun 9 saat 00 dakika --> 15.02.2015 08:55 --> 13.02.2015 19:55 --> 55 dakika fark -->
3.proses 15.02.2015 08:55 3 gun 3 saat 45 dakika --> 18.02.2015 12:40
4.proses 18.02.2015 12:40 4 gun 9 saat 05 dakika --> 23.02.2015 10:45 --> 21.02.2015 21:45 --> 2 saat 45 dakika fark -->
4.senaryo***************************************************************
miktar = 35 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =30 --> 30*35 = 1050 dakika
2.proses işlem zamanı =45 --> 45*35 = 1575 dakika
3.proses işlem zamanı =20 --> 21*35 = 735 dakika
4.proses işlem zamanı =68 --> 68*35 = 2380 dakika
1.proses 16.02.2015 08:00 1 gun 6 saat 30 dakika --> 17.02.2015 14:30
2.proses 17.02.2015 14:30 2 gun 4 saat 15 dakika --> 19.02.2015 18:45
3.proses 19.02.2015 18:45 1 gun 0 saat 40 dakika --> 21.02.2015 08:25 --> 14.02.2015 19:25 --> 25 dakika fark
4.proses 21.02.2015 08:25 3 gun 6 saat 40 dakika --> 24.02.2015 15:05
5.senaryo***************************************************************
miktar = 35 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =077 --> 077*35 = 2695 dakika
2.proses işlem zamanı =120 --> 120*35 = 4200 dakika
3.proses işlem zamanı =178 --> 178*35 = 6230 dakika
4.proses işlem zamanı =215 --> 215*35 = 7525 dakika
1.proses 10.02.2015 08:00 4 gun 0 saat 55 dakika --> 14.02.2015 08:55
2.proses 14.02.2015 08:55 6 gun 4 saat 00 dakika --> 20.02.2015 12:55
3.proses 20.02.2015 12:55 9 gun 4 saat 50 dakika --> 01.03.2015 17:45
4.proses 01.03.2015 17:45 11 gun 4 saat 25 dakika --> 13.03.2015 11:10 --> 12.03.2015 22:10
6.senaryo***************************************************************
miktar = 10 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =66 --> 66*10 = 660 dakika
2.proses işlem zamanı =66 --> 66*10 = 660 dakika
3.proses işlem zamanı =66 --> 66*10 = 660 dakika
4.proses işlem zamanı =66 --> 66*10 = 660 dakika
1.proses 26.02.2015 08:00 1 gun 0 saat 0 dakika --> 27.02.2015 08:00
2.proses 27.02.2015 08:00 1 gun 0 saat 0 dakika --> 28.02.2015 08:00
3.proses 28.02.2015 08:00 1 gun 0 saat 0 dakika --> 01.03.2015 08:00
4.proses 01.03.2015 08:00 1 gun 0 saat 0 dakika --> 02.03.2015 08:00
7.senaryo***************************************************************
miktar = 5 çift
mesai baslangıcı = 08:00:00
mesai bitişi = 19:00:00
1.proses işlem zamanı =66 --> 66*5 = 330 dakika
2.proses işlem zamanı =66 --> 66*5 = 330 dakika
3.proses işlem zamanı =66 --> 66*5 = 330 dakika
4.proses işlem zamanı =66 --> 66*5 = 330 dakika
1.proses 26.02.2015 08:00 0 gun 5 saat 30 dakika --> 26.02.2015 13:30
2.proses 26.02.2015 13:30 0 gun 5 saat 30 dakika --> 26.02.2015 19:00
3.proses 26.02.2015 19:00 0 gun 5 saat 30 dakika --> 27.02.2015 13:30
4.proses 27.02.2015 13:30 0 gun 5 saat 30 dakika --> 27.02.2015 19:00
8.senaryo***************************************************************
miktar = 5 çift
mesai baslangıcı = 06:00:00
mesai bitişi = 20:00:00
1.proses işlem zamanı =66 --> 66*5 = 330 dakika
2.proses işlem zamanı =66 --> 66*5 = 330 dakika
3.proses işlem zamanı =66 --> 66*5 = 330 dakika
4.proses işlem zamanı =66 --> 66*5 = 330 dakika
1.proses 26.02.2015 06:00 0 gun 5 saat 30 dakika --> 26.02.2015 11:30
2.proses 26.02.2015 11:30 0 gun 5 saat 30 dakika --> 26.02.2015 17:00
3.proses 26.02.2015 17:00 0 gun 5 saat 30 dakika --> 27.02.2015 08:30
4.proses 27.02.2015 08:30 0 gun 5 saat 30 dakika --> 27.02.2015 14:00
*/