Torna al Thread

WHILE @incr_dif_giorno < @avv_giorno BEGIN SET @conta_avvocati = @conta_avvocati + 1 SET @data_odierna = DATEADD(dd, (@conta_giorni-1), @data_inizio) SET @neg_giorni_incremento = -1 * @conta_giorni_incremento SET @old_turni = 0 SET @altri_turni = 0 -- fetch... IF @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM Avvocati INTO @idanagrafica END ELSE BEGIN FETCH FIRST FROM Avvocati INTO @idanagrafica END -- query che controlla i turni già assegnati per altre liste... SELECT @old_turni = COUNT(*) FROM Albo_Turno_Dettaglio CROSS JOIN ALBO_TURNO WHERE Albo_Turno_Dettaglio.idalbo = @idanagrafica AND ( ALBO_TURNO.Tipo = @tipo_albo_A OR ALBO_TURNO.Tipo = @tipo_albo_B ) AND ( Albo_Turno_Dettaglio.Data BETWEEN DATEADD(dd, (@neg_giorni_incremento + 1), @data_odierna) AND DATEADD(dd, (@incremento_giorni-@conta_giorni_incremento), @data_odierna) ) SELECT @old_turni AS old_turni -- (nel caso in cui il ciclo ricominci..) controllare che questo avvocato non abbia -- già un set di giorni in questo turno... -- passato il primo controllo.. deve passare anche questo.. SELECT @altri_turni = COUNT(*) FROM Albo_Turno_Dettaglio WHERE Albo_Turno_Dettaglio.idalbo = @idanagrafica AND Albo_Turno_Dettaglio.idturno = @nuovo_idturno SELECT @altri_turni AS altri_turni IF @old_turni = NULL BEGIN SET @old_turni = 0 END IF @ALTRI_TURNI = NULL BEGIN SET @ALTRI_TURNI = 0 END IF (@old_turni = 0 AND (@altri_turni = 0 OR @altri_turni < (@incremento_giorni))) BEGIN -- se non ci sono turni sovraposti assegna il turno all'avvocato x N giorni (incremento_giorni) -- seleziono il dettaglio con idturno max per aumentare di uno... SET @idalboturno = 1 SET @dett_idturno = 1 SELECT @dett_idturno = MAX(idalboturno) FROM Albo_Turno_Dettaglio if (@dett_idturno) = null begin set @dett_idturno = 0 end SET @idalboturno = @dett_idturno + 1 INSERT Albo_Turno_Dettaglio ( idalboturno, idalbo, idturno, data ) VALUES ( @idalboturno, @idanagrafica, -- da cursore @nuovo_idturno, @data_odierna -- problemi inserimento data?? ) -- valorizza il numero degli avvocati del giorno + 1 SET @incr_dif_giorno = @incr_dif_giorno + 1 END ELSE BEGIN -- non incrementare la variabile... SET @incr_dif_giorno = @incr_dif_giorno END END
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5