Resolvi sim, resumindo, eu ja tinha feito a consistencia de datas via
código, mas somente para quando ainda não havia inserido nos eventos do
aluno. Pensava que seria mais facil clonar o objeto remover o evento
respectivo e simular novamente a inserção, mas o clone com remove não
funcionou como esperado, ele persisitia no banco, resolvi dando um continue
qdo o foreach passa pelo proprio registro a ser comparado.Pois é, para mim
a sobrecarga do PHP também se enquadrava quando eu fazia meu metódo
funcionar com diferentes números de argumentos, ví que é bem mais alem me
enganei hehe


Em 27 de abril de 2012 21:15, felipe bastos <[email protected]> escreveu:

> Ok .. o que está chamando de sobrecarga não é sobrecarga :D
>
> E você pode verificar se ocorre o choque via SQL como eu fiz .. é mais
> eficiente. A data pode ser um índice, se você tiver muitas consultas e
> pouca escrita, pode ajudar na performance.
>
> Você já solucionou o problema ou ele ainda existe? Pergunto pq código pela
> metade não dá pra saber se realmente funciona.
>
> Boa sorte aí!
>
>
> Em 27 de abril de 2012 20:50, Douglas J.A.M <[email protected]>escreveu:
>
> Realmente não ficou claro minhas explanações, me desculpe mas a intenção
>> não foi ser irônico, você me deu uma ideia com o seu código.
>>
>> A sobrecarga que eu fiz foi a seguinte.
>>
>> Quando eu faço a inserção no banco, antes faço uma filtragem de conflito
>> de datas, antes estava assim:
>>
>> isDisponivel(data_de, data_ate).{
>>     foreach($alunos->eventos as $evento){
>>           // verifica datas
>>         if(confliteDatas($data_de1, $data_ate1, $data_de2, $data_ate2){
>>            ....
>>         }
>>     }
>> }
>>
>> Após já estar inserido, não posso usar esta função repassando a mesma
>> data pois ela já está inserida no banco de dados, então o que fiz foi uma
>> sobrecarga neste metódo conforma a seguir:
>>
>> isDiposnivel(data_de, data_ate, $evento_id){
>>     foreach($alunos->eventos as $evento){
>>         if($evento->id == $evento_id)
>>             continue;
>>          // verifica datas
>>         if(confliteDatas($data_de1, $data_ate1, $data_de2, $data_ate2){
>>            ....
>>         }
>>     }
>>
>> Me desculpe por não ser claro e me dar um um mal entendimento nas minhas
>> argumentações, sou falho nessa área
>>
>> Em 27 de abril de 2012 20:04, felipe bastos <[email protected]>escreveu:
>>
>>> Bom, não faço milagre ainda :D
>>>
>>> Você quer verificar só a data? Qual a dificuldade?
>>>
>>> Cadê a sobrecarga? Você sabe o que é sobrecarga?
>>>
>>> foreach ($this->eventos->where('data_de', '>=',
>>> $data_de)->and_where('data_ate', '<=', $data_ate)->find_all() as $evento) {
>>>
>>> Sem mais detalhes é impossível ajudar.
>>>
>>> Ah, Pra que clone?
>>>
>>> Em 27 de abril de 2012 15:33, Douglas J.A.M <[email protected]>escreveu:
>>>
>>> De grande valia sua ajuda mas estava quereando ter que mecher aqui o
>>>> minímo, fiz um incremento na função com ajuda da sobrecarga, mas seria bom
>>>> também saber como clone um objeto por inteiro, ele e todos os filhos. Abri
>>>> um tópico no ko forum
>>>> http://forum.kohanaframework.org/discussion/10696/complete-clone-instance-orm#Item_1
>>>>
>>>> public function isDisponivel($data_de, $data_ate, $evento_id = NULL) {
>>>>
>>>>         foreach ($this->eventos->find_all() as $evento) {
>>>>
>>>>             // se o evento passado for o mesmo que o do laço pula
>>>>             // utilizado para consistencias após a inserção
>>>>             if ($evento_id != NULL && $evento_id == $evento->id)
>>>>                 continue;
>>>>
>>>> --
>>> http://felipebastosweb.com.br
>>> http://twitter.com/felipebastosweb
>>>
>>> --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>  --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>
>
>
> --
> http://felipebastosweb.com.br
> http://twitter.com/felipebastosweb
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a