Codice PHP:
// esecuzione della query che imposta i parametri di riferimento per tutti i contratti da aggiornare definizione del primo ciclo$sql = "SELECT [IDCONTRATTO] ,[CodiceSezUpdated],[OreSezUpdated] FROM [Sicura].[dbo].[BiriOreSezUpdated]";$params = array();$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );$stmt = sqlsrv_query( $conn, $sql , $params, $options );$row_count = sqlsrv_num_rows( $stmt );// Se l'oggetto è vuoto restituisco un erroreif( $stmt === false ) { die( print_r( sqlsrv_errors(), true));}
//Inizio del primo ciclowhile($obj = sqlsrv_fetch_object($stmt)) {//1 PARTE // Setto i parametri di riferimento per le ore_int dei contratti sucessivamente trovati dagli altri cicli$contratto=$obj->IDCONTRATTO;$sezione=$obj->CodiceSezUpdated;$oreupdated=$obj->OreSezUpdated;//echo "Primo Ciclo - Contratto : ".$contratto." - Sezione : ".$sezione." - ValOreUpdatet : ".$oreupdated."\n";//2 PARTE - AVVIO IL SECONDO CICLO SU CONTRATTI RINNOVATI DAL CONTRATTO ORIGINE UPDATED$sql1 = "SELECT [IDCONTRATTO] ,[SEZIONECONTRATTO] ,[OLD_RifSezioneGemma] ,[ORE_INT], [SEZIONECONTRATTO_Prec] FROM [Sicura].[dbo].[GEM_SEZIONICONTRATTO] where [OLD_RifSezioneGemma]='".$contratto."' and [SEZIONECONTRATTO_Prec]='".$sezione."'";$stmt1 = sqlsrv_query( $conn, $sql1 , $params, $options );// Se l'oggetto è vuoto restituisco un erroreif( $stmt1 === false ) { die( print_r( sqlsrv_errors(), true));}while($obj1 = sqlsrv_fetch_object( $stmt1)) { $contratto1=$obj1->IDCONTRATTO; $sezione1=$obj1->SEZIONECONTRATTO; $oreint1=$obj1->ORE_INT;//echo "Contratto Riferimento: ".$contratto."-".$sezione." Contratto Correlato: ".$contratto1."-".$sezione1."\n";
$sql2 = "SELECT [IDCONTRATTO] ,[SEZIONECONTRATTO] ,[OLD_RifSezioneGemma] ,[ORE_INT], [SEZIONECONTRATTO_Prec] FROM [Sicura].[dbo].[GEM_SEZIONICONTRATTO] where [OLD_RifSezioneGemma]='".$contratto1."' and [SEZIONECONTRATTO_Prec]='".$sezione1."'";$stmt2 = sqlsrv_query( $conn, $sql2 , $params, $options );// Se l'oggetto è vuoto restituisco un erroreif( $stmt2 === false ) { die( print_r( sqlsrv_errors(), true));}while($obj2 = sqlsrv_fetch_object( $stmt2)) { $contratto2=$obj2->IDCONTRATTO; $sezione2=$obj2->SEZIONECONTRATTO; $oreint2=$obj2->ORE_INT;//$sql3 = "SELECT [IDCONTRATTO] ,[SEZIONECONTRATTO] ,[OLD_RifSezioneGemma] ,[ORE_INT], [SEZIONECONTRATTO_Prec] FROM [Sicura].[dbo].[GEM_SEZIONICONTRATTO] where [OLD_RifSezioneGemma]='".$contratto2."' and [SEZIONECONTRATTO_Prec]='".$sezione2."'";$stmt3 = sqlsrv_query( $conn, $sql3 , $params, $options );// Se l'oggetto è vuoto restituisco un erroreif( $stmt3 === false ) { die( print_r( sqlsrv_errors(), true));}while($obj3 = sqlsrv_fetch_object( $stmt3)) { $contratto3=$obj3->IDCONTRATTO; $sezione3=$obj3->SEZIONECONTRATTO; $oreint3=$obj3->ORE_INT;$sql4 = "SELECT [IDCONTRATTO] ,[SEZIONECONTRATTO] ,[OLD_RifSezioneGemma] ,[ORE_INT], [SEZIONECONTRATTO_Prec] FROM [Sicura].[dbo].[GEM_SEZIONICONTRATTO] where [OLD_RifSezioneGemma]='".$contratto3."' and [SEZIONECONTRATTO_Prec]='".$sezione3."'";$stmt4 = sqlsrv_query( $conn, $sql4 , $params, $options );// Se l'oggetto è vuoto restituisco un erroreif( $stmt4 === false ) { die( print_r( sqlsrv_errors(), true));}while($obj4 = sqlsrv_fetch_object( $stmt4)) { $contratto4=$obj4->IDCONTRATTO; $sezione4=$obj4->SEZIONECONTRATTO; $oreint4=$obj4->ORE_INT; echo "Contratto Riferimento: ".$contratto."-".$sezione." Contratto Correlato D: ".$contratto4."-".$sezione4."\n";//Accodo sulla Tabella di Log i valori old e quelli aggiornati $sqlu4 = "INSERT INTO BiriOreSezUpdatedLog(IDCONTRATTOBASE, CodiceSezUpdatedBASE, OreSezUpdatedBASE, IDCONTRATTOBASETU, CodiceSezTU, OreSezBefore) VALUES ( ?, ?, ?, ?, ?, ? )"; $params4 = array($contratto, $sezione, $oreupdated,$contratto4,$sezione4, $oreint4); $stmtU4 = sqlsrv_query( $conn, $sqlu4, $params4);}echo "Contratto Riferimento: ".$contratto."-".$sezione." Contratto Correlato C: ".$contratto3."-".$sezione3."\n"; $sqlu3 = "INSERT INTO BiriOreSezUpdatedLog(IDCONTRATTOBASE, CodiceSezUpdatedBASE, OreSezUpdatedBASE, IDCONTRATTOBASETU, CodiceSezTU, OreSezBefore) VALUES ( ?, ?, ?, ?, ?, ? )"; $params3 = array($contratto, $sezione, $oreupdated,$contratto3,$sezione3, $oreint3); $stmtU3 = sqlsrv_query( $conn, $sqlu3, $params3); }echo "Contratto Riferimento: ".$contratto."-".$sezione." Contratto Correlato B: ".$contratto2."-".$sezione2."\n"; $sqlu2 = "INSERT INTO BiriOreSezUpdatedLog(IDCONTRATTOBASE, CodiceSezUpdatedBASE, OreSezUpdatedBASE, IDCONTRATTOBASETU, CodiceSezTU, OreSezBefore) VALUES ( ?, ?, ?, ?, ?, ? )"; $params2 = array($contratto, $sezione, $oreupdated,$contratto2,$sezione2, $oreint2); $stmtU2 = sqlsrv_query( $conn, $sqlu2, $params2); }echo "Contratto Riferimento: ".$contratto."-".$sezione." Contratto Correlato A: ".$contratto1."-".$sezione1."\n"; $sqlu1 = "INSERT INTO BiriOreSezUpdatedLog(IDCONTRATTOBASE, CodiceSezUpdatedBASE, OreSezUpdatedBASE, IDCONTRATTOBASETU, CodiceSezTU, OreSezBefore) VALUES ( ?, ?, ?, ?, ?, ? )"; $params1 = array($contratto, $sezione, $oreupdated,$contratto1,$sezione1, $oreint1); $stmtU1 = sqlsrv_query( $conn, $sqlu1, $params1); }}// chiudo la connessione al dbsqlsrv_close($conn);