function getDataFinal($id_item) { $pai = new Pai(); $DAO = new PaiDAO(); $query = mysql_query("SELECT dia FROM " . MYSQL_BASE_FERIADOS . " WHERE excluido IS NULL"); $query_retorno = array(); if (!$query) { die("3 " . mysql_error()); } while ($row = mysql_fetch_array($query)) { $query_retorno[] = $row['dia']; } mysql_free_result($query); $query = mysql_query("SELECT ADDDATE(ADDDATE(data_inicio, vencimento), \r\n\t\t\t\t\t\t\t\t(SELECT COUNT(*) FROM " . MYSQL_BASE_FERIADOS . " WHERE dia BETWEEN data_inicio AND ADDDATE(data_inicio, vencimento)) ) AS new_fim,\r\n\t\t\t\t\t\t\t\tvenc_dias_corridos,\r\n\t\t\t\t\t\t\t\tdata_inicio\r\n\t\t\t\t\t\t\tFROM " . MYSQL_BASE_PROCEDIMENTO_LICITATORIO_ITEM . " \r\n\t\t\t\t\t\t\tWHERE excluido IS NULL\r\n\t\t\t\t\t\t\tAND venc_dias_corridos = 'N'\r\n\t\t\t\t\t\t\tAND id = " . $id_item . "\r\n\t\t\t\t\t\t\t/*Consulta com calculo do Feriado + os dias Vencimentos*/\r\n\t\t\t\t\t\t\tUNION \r\n\t\t\t\t\t\t\tSELECT ADDDATE(data_inicio, vencimento) AS new_fim,\r\n\t\t\t\t\t\t\t\tvenc_dias_corridos,\r\n\t\t\t\t\t\t\t\tdata_inicio\r\n\t\t\t\t\t\t\tFROM " . MYSQL_BASE_PROCEDIMENTO_LICITATORIO_ITEM . " \r\n\t\t\t\t\t\t\tWHERE excluido IS NULL \r\n\t\t\t\t\t\t\tAND venc_dias_corridos = 'S' \r\n\t\t\t\t\t\t\tAND id = " . $id_item); if (!$query) { die("4 " . mysql_error()); } while ($row = mysql_fetch_array($query)) { if ($row['venc_dias_corridos'] == 'N') { //Se vencimento não são dias corridos, calcula feriados + sabados e domingos $fim = mysql_query("CALL sp_fim_de_semana (@retorno, '" . $row['data_inicio'] . "', '" . $row['new_fim'] . "');"); while ($fim_semana = mysql_fetch_array($fim)) { $fim_de_semana = $fim_semana['qtd']; //Quantidade de Sabados e Domingos } mysql_free_result($fim); $data = date('Y/m/d', strtotime('+' . $fim_de_semana . ' days', strtotime($row['new_fim']))); // Calculo Dias de Vencimentos + Feriados + Sabado e Domingos $new_data = $pai->verificaDataFim($data, $query_retorno); } else { $new_data = $row['new_fim']; //Se vencimento são dias corridos, calcula data inicial + dias de vencimento } } mysql_free_result($query); //mata o cache da query $request = $DAO->AtualizarDataFim($id_item, $new_data); }