示例#1
0
 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);
 }