Jump to content


Alaucho

Member Since 06/09/2008
Offline Last Active 30/12/2011, 11:51
-----

Topics I've Started

Problemas Com Cálculos Entre Datas

26/12/2011, 08:23

Fala pessoal, beleza?

Gostaria de uma ajuda de vcs para um sistema que fiz, e que está apresentando um problema que não consigo identificar o que o estaria ocasionando.

É um sistema para cotação de passagem, onde um consultor envia a cotação e um responsável confirma esta cotação. O problema está nessa confirmação. A ideia é que quando o consultor envie a cotação, seja salvo no banco a data e hora do envio. Ao ser confirmada pelo responsável, pego também data e hora, e cálculo a diferença de tempo para resposta, para saber se houve quebra ou não (existe um tempo limite de resposta que define isto), e grava como "Sim" ou "Não" no banco de acordo com esse cálculo.

A questão é que algumas vezes dá certo, outras vezes não. Com algumas cotações que excedem o tempo limite, ele cálculo certo, sendo que com outras não. A princípio, o tempo calculado estaria correto, pois ele apresenta na tela a diferença correta.

Abaixo segue a função que está retornando a diferença entre as datas:
function calcula_tempo($solicitacao, $envio) {
        
        $date_time = new DateTime( $solicitacao );
        $data_atualizada = $date_time->diff( new DateTime( $envio ) );
        
        return $data_atualizada;
    }

Aqui, o código que fiz para poder verificar se houve quebra ou não. Basicamente, o tempo de quebra seria 3h 20min:
$data = calcula_tempo($monta['data_solicitacao'], $data_atual);
                    $periodo = $data->format( '%d dia(s), %H hora(s), %i minuto(s) e %s segundo(s)' );
                    $dia = (int) $data->format('%d');
                    $hora = (int) $data->format('%H');
                    $minuto = (int) $data->format('%i');
                    if ($dia > 0) {
                        $soma = (($dia * 24) + $hora) - ($dia * 15);
                        $tempo = $soma.' hora(s),'.$minuto.' minuto(s)';
                        $quebra = "Sim";
                    } else {
                        $array_data_solicitacao = explode(" ", $monta['data_solicitacao']);
                        $array_dia_solicitacao = explode("-", $array_data_solicitacao[0]);
                        
                        $array_data_envio = explode(" ", $data_atual);
                        $array_dia_envio = explode("-", $array_data_envio[0]);
                        
                        if ($array_dia_solicitacao[2] != $array_dia_envio[2]) {
                            $hora_total = $hora -  15;
                            if (($hora_total > 3) && ($minuto > 20)) {
                                $quebra = "Sim";
                            } else {
                                $quebra = "Não";
                            }
                            $tempo = $hora_total.' hora(s),'.$minuto.' minuto(s)';
                        } else {
                            $hora_total = $hora;
                            if (($hora_total > 3) && ($minuto > 20)) {
                                $quebra = "Sim";
                            } else {
                                $quebra = "Não";
                            }
                            $tempo = $hora.' hora(s),'.$minuto.' minuto(s)';
                        }
                    }   
                }
                $minutos_total = converte_hora_minuto($hora, $minuto);

Será que alguém teria alguma luz sobre o motivo disto estar ocorrendo?
Ok, eu sei que o código não está dos mais bonitos, nem dos mais funcionais. Mas, recém estava aprendendo a utilizar o "diff", essa foi a melhor forma que encontrei no momento para fazer isto.

Espero que possam me ajudar.

Abs

Valor Campo Select

18/11/2011, 12:48

Fala pessoal!

Estou precisando de ajuda com um sistema de cotação de passagem que criei. A ideia é que alguém preencha os dados dessa cotação, e enviei para a pessoa responsável por confirmar essa cotação, emitir as passagens. Essa parte está tranquilo. O problema que tenho agora é o seguinte: existem 3 pessoas responsáveis por confirmar essa cotação, então eu precisaria saber quem foi que confirmou. Sei que com login, isso seria possível utilizando sessão, mas por enquanto não estou usando login, pois quero fazer alguns testes. Na página que o responsável acessa, terão as cotações em aberto.

Minha dúvida é nesse ponto: anteriormente, eu havia colocado um link que passava como parametro o ID da cotação para outra página, atualizando o status dela. Porém, como agora preciso selecionar o responsável pela confirmação, gostaria de saber qual seria a melhor forma de fazer isso. Estou utilizando "a href" pois assim passo o ID por parametro. Teria alguma forma de fazer isso utilizando "form"?

Segue como está essa parte do código, para melhor visualização:

<table class="tablesorter" cellspacing="1" border="1">
            <thead>
                <tr>
                    <th align="center">Número Cotação</th>
                    <th align="center">Consultor</th>
                    <th align="center">Responsável</th>
                    <th align="center">Nome do Passageiro</th>
                    <th align="center">Data da Solicitação</th>
                    <th align="center">Origem</th>
                    <th align="center">Destino</th>
                    <th align="center">Data de Nascimento</th>
                    <th align="center">Período de Embarque</th>
                    <th align="center">Data Ideal de Embarque</th>
                    <th align="center">Período de Retorno</th>
                    <th align="center">Data Ideal de Retorno</th>
                    <th align="center">Tipo</th>
                    <th align="center">Validade</th>
                    <th align="center">Observação</th>
                    <th align="center">Status</th>
                    <th align="center">Ação</th>
                </tr>
            </thead>
            <tbody>
        <?php
            $sql = mysql_query($query_novas,$conecta2)OR DIE(mysql_error());
            while($monta = mysql_fetch_assoc($sql)){
                echo "<tr>";
                echo "<td align='center'>".$monta['cotacao_id']."</td>";
                echo "<td align='center'>".$monta['consultor']."</td>";
                echo "<td align='center'><select id='responsavel' name='responsavel'>";
                    $sql_consultor = mysql_query($query_consultor,$conecta)OR DIE(mysql_error());
                    while($monta_consultor = mysql_fetch_assoc($sql_consultor)){
                        echo "<option id='".utf8_encode($monta_consultor['user_name'])."'>".utf8_encode($monta_consultor['user_name'])."</option>";
                    }
                echo "</select></td>";
                echo "<td align='center'>".$monta['nome_passageiro']."</td>";
                echo "<td align='center'>".datetime($monta['data_solicitacao'])."</td>";
                echo "<td align='center'>".$monta['origem']."</td>";
                echo "<td align='center'>".$monta['destino']."</td>";
                echo "<td align='center'>".data_formato_br($monta['data_nascimento'])."</td>";
                echo "<td align='center'>".$monta['periodo_embarque']."</td>";
                echo "<td align='center'>".data_formato_br($monta['data_ideal_embarque'])."</td>";
                echo "<td align='center'>".$monta['periodo_retorno']."</td>";
                echo "<td align='center'>".data_formato_br($monta['data_ideal_retorno'])."</td>";
                echo "<td align='center'>".$monta['tipo']."</td>";
                echo "<td align='center'>".$monta['validade']."</td>";
                echo "<td align='center'>".$monta['observacao']."</td>";
                echo "<td align='center'>Novo</td>";
                echo "<td align='center'><a href='altera_cotacao.php?id=".$monta['cotacao_id']."'><img src='../img/alterar_status.jpg' /></a></td>";
                echo "</tr>";
                $count++;
            }

Nessa seguinte parte:

echo "<td align='center'><select id='responsavel' name='responsavel'>";
                    $sql_consultor = mysql_query($query_consultor,$conecta)OR DIE(mysql_error());
                    while($monta_consultor = mysql_fetch_assoc($sql_consultor)){
                        echo "<option id='".utf8_encode($monta_consultor['user_name'])."'>".utf8_encode($monta_consultor['user_name'])."</option>";
                    }

Estou buscando o nome dos responsáveis para apresentar num select por enquanto. A questão é que como passo num link, o valor desse select não vai ser puxado, correto?

Bom, espero que possam me dar uma ideia.

Abs

Mala Direta Do Word Não Funciona

03/06/2011, 12:44

Salve salve pessoal!

Estou tentando enviar uma mala direta através do Word, porém não está sendo possível. Crio a mensagem, crio a lista no Excel e puxo ela normalmente, mando fazer o envio, só que nada acontece.

Testei utilizando a opção de HTML e "texto sem formatação", mas em ambos a mensagem não vai. No Outlook, não tem nada nos Itens Enviados, nem na Caixa de Saída. Esse problema está ocorrendo só em uma máquina.

Utilizo o Office 2007.

Alguém sabe dizer o motivo disso ocorrer? É necessária alguma configuração específica para funcionar a mala direta?

Abs

Scanner Não Disponível

01/06/2011, 12:58

Salve pessoal!

Estou com um problema tenso, que não consigo encontrar nenhuma solução. Tenho uma multifuncional instalada em um desktop e que é compartilhada com outros 2 notebooks. A instalação ocorreu normalmente, e as impressões estão funcionando. O problema está com o Scanner.

Durante a instalação, diz que o Scanner vai ser instalado, conclui a instalação normalmente. Porém, na hora de tentar escanear algo, utilizando o Windows Fax and Scan, diz que não foi encontrado nenhum dispositivo. Utilizando o próprio software disponibilizado pelo fabricante, diz que houve uma falha ao tentar salvar o arquivo, mas nada mais específico.

Já testei desinstalar e instalar novamente, desplugar a multifuncional e plugar de novo, trocar a porta USB, reiniciar o Windows, e nada. Estou utilizando o Windows 7. Quando vou em Scanner e Câmeras, aparece o modelo que instalei, porém quando vou nas propriedades, mostra a porta: \\.\\usbscan0, status: não disponível

O modelo da multifuncional é Panasonic KX-MB783BR.

Alguém sabe dizer o por quê disso ocorrer, e como corrigir esse problema? Preciso muito resolver esta questão, e espero que possam me ajudar.

Abraços

Passar Vários Cadastros Para Outra Página

06/05/2011, 17:48

E ai pessoal, beleza?

Buenas, venho pedir um auxílio de vocês, para uma questão que talvez possa ser simples, mas que simplesmente me deu um branco e travei. Tenho uma página, onde eu busco 3 dados (Nome, usuário e e-mail) de todos os funcionários no banco de dados, e mostro na tela através do "form". Até ai, beleza, está funcionando.

A idéia agora é quando clicar no botão, ele pegue todos esses dados e passe para uma outra página, que irá salvá-los em outro banco. Eu pensei em session e array, mas travei em como vou fazer isso. O código da página está assim atualmente:

    echo "<body>";
    echo "<form action='session.php' method='post'>";
    while ($row = mysql_fetch_array($query)) 
    {
                
                if ($cont % 2 == 0)
                {
                        $cor = "#f2f2f2";
                }
                else
                {
                        $cor = "#ffffff";
                }
        
        $_SESSION['user_name'] = $row['user_name'];
        $_SESSION['user_login'] = $row['user_login'];
        $_SESSION['user_email'] = $row['user_email'];
        
        echo "<table align='center' width='700' height='50'>";
        echo "<tr bgcolor='".$cor."'>";
        echo "<td>".$row['user_name']."</td>";
        echo "<td>".$row['user_login']."</td>";
        echo "<td>".$row['user_email']."</td>";
        echo "</tr>";
        echo "</table>";
        $cont = $cont + 1;
        $_SESSION['cont'] = $cont;
        
    }
    echo "<center>";
    echo "<input type='submit' value='Importar' />";
    echo "</center>";
    echo "</form>";
    echo "</body>";

Já tentei umas loucuras aqui, mas nada deu certo. Se tiverem uma idéia, agradeço.

Abs

IPB Skin By Virteq