Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alissong

Simular Financiamento

Recommended Posts

Apolo Lira,

 

Veja essa função que criei em vb06 é possível transformá-la em php.

Private Sub cmdgeramensalidades_Click()

Dim Dia As String

Dim Mes As Integer

Dim Ano As Integer

Dim Data As String

Dim Fevereiro As Integer

 

On Error GoTo cmdgeramensalidades 'Erro ao gerar registro

 

Screen.MousePointer = vbHourglass

Data = Text1.Text

Dia = Mid(Data, 1, 2)

Mes = Mid(Data, 4, 2)

Ano = Mid(Data, 7, 4)

 

Mes = Format(Text1.Text, "mm")

Ano = Format(Text1.Text, "yy")

 

 

For i = 1 To Val(txtparcelas.Text)

Mes = Mes + 1

If Mes > 12 Then

Mes = 1

Ano = Ano + 1

End If

 

'Verificando os meses que podem ter até o dia 31

If (Mes = 1) Or (Mes = 3) Or (Mes = 5) Or (Mes = 7) Or (Mes = 8) Or (Mes = 10) Or (Mes = 12) Then

If (Dia > 0) Or (Dia > 30) Then

Dia = Format(Text1.Text, "dd")

End If

ElseIf (Mes = 4) Or (Mes = 6) Or (Mes = 9) Or (Mes = 11) Then

If (Dia = 31) Then

Dia = Format(Text1.Text, "dd") - 1

End If

'Verificando o mes de fevereiro

ElseIf (Mes = 2) Then

If (Dia <= 28) Then

Dia = Format(Text1.Text, "dd")

Else

If Fevereiro = Ano Mod 4 Then

Dia = 29

Else

Dia = 28

End If

End If

End If

 

Data = Dia & "/" & Format(Mes, "00") & "/" & Format(Ano, "00")

parcela = CCur((txtvalor.Text) * txttaxas.Text) * (1 + txttaxas.Text) ^ txtparcelas.Text / ((1 + txttaxas.Text) ^ txtparcelas.Text - 1)

 

If AdoTempContrato.State = 1 Then Set AdoTempContrato = Nothing

 

AdoTempContrato.Open "select * from temp_contrato where n_contrato = '" & n_contrato.Text & "'", gconexao, adOpenDynamic, adLockPessimistic

 

With AdoTempContrato

If .EOF Then

.AddNew

.Fields(0) = n_contrato.Text

.Fields(1) = CLng(busca_cliente.Text)

.Fields(2) = CCur(txtvalor.Text)

.Fields(3) = txtparcelas.Text

.Fields(4) = CCur(txttaxas.Text)

.Update

.Requery

.Close

End If

End With

 

If AdoMensalidade.State = 1 Then Set AdoMensalidade = Nothing

 

AdoMensalidade.Open "select * from temp where n_contrato = '" & n_contrato.Text & "' order by vencimento", gconexao, adOpenDynamic, adLockPessimistic

 

With AdoMensalidade

 

.AddNew

.Fields(1) = n_contrato.Text

.Fields(2) = GeraQuanty

.Fields(3) = Format(CDate(Data), "dd/mm/yyyy")

.Fields(4) = CCur(txttaxas.Text)

.Fields(5) = CCur(parcela)

.Fields(6) = "NAO"

.Update

.Requery

.Close

 

End With

Next

 

MontarLista

 

SQL = " delete from temp"

gconexao.Execute SQL

 

txttotal.Text = (Format((ComputeAmount), "currency"))

cmdGravar.Enabled = True

 

Screen.MousePointer = vbDefault

 

cmdgeramensalidades_exit:

Exit Sub

cmdgeramensalidades:

MsgBox Err.Description, vbInformation, "Erro ao [cmdgeramensalidades]"

 

End Sub

 

Um abraço.

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos a função data válida que você pediu...

 

função data tentando ao máximo ser igual ao que você fez no visualbasic

PHP
<?

 

//função de repetição de datas válidas

//autor: Apolo Lira (apololira@gmail.com)

//retorno: data verificada e possívelmente alterada para válida.

//criada em 27/11/2008 1h50.

//argumentos: $data (data entrada), $format(formato da data, 1 para dd/mm/yyyy ou 2 para dd-mm-yyyy).

 

 function verifica_data($data, $format){

 

   if($format == "1"){     //verifica o formato pedido, se é 1 ou 2.

    //função explode, separa em array os valores, e tira o carácter que está no índice da função, no caso /

    //sendo $date[0] == dia, $date[1] == mes, $date[2] == ano, pode ser feito com qualquer string que você precise.

     $date = explode("/", $data);

 

   }elseif($format == "2"){

     $date = explode("-", $data);

   }

 

   //verifica os meses que tem 31 dias

   if($date[1] == "01" or $date[1] == "03" or $date[1] == "05" or $date[1] == "07" or $date[1] == "08" or $date[1] == "10" or $date[1] == "12"){

     if($date[0] >= "32"){ //se o dia for maior ou igual a 32, faça.

        $return_dia = "31"; //dia igual a 31, no caso de termos uma data inválida com dia maior que 31

     }else{

        $return_dia = $date[0];//se o dia é um valor menor que 31, colocamos na variável $return_dia, o mesmo valor.

     }

   //verifica os meses que tem 30 dias

   }elseif($date[1] == "04" or $date[1] == "06" or $date[1] == "09" or $date[1] == "11"){

     if($date[0] >= "31"){ //se dia eh maior ou igual a 31

      $return_dia = "30"; //transforma para uma data válida

     }else{

      $return_dia = $date[0];

     }

   //verifica o mes de fevereiro

   }elseif($date[1] == "02"){

     if($date[0] >= "29"){ //se dia eh maior ou igual a 28

      $return_dia = "28"; //transforma para uma data válida

     }else{

      $return_dia = $date[0];

     }

   }

   //monta a data de retorno.

   $data_valida = $return_dia."/".$date[1]."/".$date[2];

   return $data_valida;

 

 }

 //TESTE DE RETORNO

 //verifica_data("32/12/2007","1");

 //retorno: 31/12/2007

 

 //verifica_data("31/02/2007","1");

 //retorno: 28/02/2007

 ?>

 

para chamar a função fora de códigos PHP

PHP
<?=verifica_data("31/02/2007","1"); ?>

//se for usar variável dentro do argumento da função, assim exemplo.

<?=verifica_data($data_v,"1"); ?>

 

função mail()

PHP
//ela não função via localhost, se você nao definir o servidor de SMTP, no arquivo de configuração do php.ini que fica na pasta c:/windows

        $header = "From: seuemail@.com.br<seuemail@.com.br> n";

        $header .= "Content-Type: text/html; charset=pt-brn";

        $header .= "X-Mailer: PHP4 Script Languagen";

        $header .= "X-Accept-Language: enn";

        $header .= "MIME-Version: 1.0n";

        $header .= "Content-Transfer-Encoding: 7bitn";

        $assunto = "testando e-mail";

        $msg = "Qualquer coisa <b>aceita HTML</b>";

 

       $para = "emailpara@exemplo.com.br";

 

if(mail($para, $assunto, $msg, $header)){

echo "enviado com sucesso !";

}else{

echo "erro";

}

 

beleza, depois qualquer coisa você me fala, para implementar naquela nossa aplicação, ainda precisa repetir os meses e trocar o ano se necessário,

essa função ela altera mesmo é o dia, mês ela só analisa, e ano não faz nada.. essa parte temos que fazer no código, mas acho que no primeiro código, você já tinha feito algo parecido sim no primeiro script...

 

respondendo ao outro tópico...

é realmente você fazer uma aplicação em php seria muito melhor, e se você utilizasse um serviço de hospedagem, melhor ainda, pois você dá manutenção no sistema de qualquer lugar do mundo né ?

 

HTML, que coisa chata, hehehe, eu detesto, passei a gostar muito mais depois da evolução ( que não é bem evolução, é apenas os programadores caíndo na real que é muito melhor) para xHTML, e dividem a página toda em camadas, um código mais limpo em organizado, porém requer mais habilidade do programador, em modelar o sistema... o melhor site para ver assuntos de CSS, xHTML é o imasters.com.br que o colunista é administrador do www.maujor.com site muito bom, e ele tá pra lançar um livro agora, sobre o mesmo, naquele script de simulador que eu coloquei na área de laboratório de scripts, ele está em xHTML, e usando table no momento necessário, que é para listagem de dados, e nao colocar o site inteiro, como todos vêem usando...

 

Ícones, e imagens, bom realmente isso tudo é jpg, png ou gif, esses que você viu no meu sistema são ícones free que baixei e coloquei no sistema.

 

sobre a aplicação se tornar PHP, olha, você tah na iniciando agora em PHP né ? pois é, realmente é algo bem trabalhoso, alguém com experiência em PHP, e sem conhecimento em VB já iria demorar...ou no caso que é o inverso.. você precisará de tempo, e bastante esforço e força de vontade...precisa está preparado..

 

PHP 5, nova versão,eu ainda não me acostumei, to esperando terminar esse sistema que te mandei as imagens, para migrar para a nova versão, pois ela veio quente em mudanças, e a maioria dos sistemas em PHP, não estão suportando o PHP 5, inclusive vários datacenters não estão disponibilizando, quando estão, mantém os dois, servidor com php5, e outros com o php4.... tá complicado isso...

 

bom acho que chega né ?

 

veja bem você tah com dois acidentes de percusso, primeiro HTML (mais fácil, porém não recomendado), PHP 4(mais fácil, porém versão inferior)....

 

Abraços,

 

Apolo Lira, fumarei meu último cigarro da noite, e vou durmir, heheh até manhã ai amigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apolo Lira,

 

Aquele site que você me indicou tem coisas que fazia em vb06, mas via em alguns sites na net, mas não tinha idéia de como fazer.

Sobre a função data vou testá-la amanhã, pois hoje tive dois pregões muito chatos. A função e-mail que me enviou testarei amanhã. Contudo, o sistema que tenho busca o e-mail da base de bados e disparam para os fornecedores cadastrados para uma certa atividade. Exemplo: Quero pedir o orçamento para os fornecedores cadastrados na atividade - Material de Expediente. Bom, estava tentando fazer um script que envia a senha por e-mail quando solicitada pelo usuário. Transformei o código em mysql. Veja o código.

1- Conexão com o Banco

<?php

 

//mysql

$host = "localhost"; //end. do servidor

$usuario = "seu usuario"; //usuario do banco de dados

$senha = "seua senha"; //senha do banco de dados

$banco = "seu banco"; //nome do banco de dados

mysql_connect($host,$usuario,$senha);

mysql_select_db($banco);

 

 

?>

2- Formulário senha.php

<form name="senha" method="post" action="enviar_senha.php">

<table width="400" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>

<td width="250"><input name="nome" type="text" id="nome"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>

<td><input name="e_mail" type="text" id="e_mail"></td>

</tr>

<tr>

<td> </td>

<td> </td>

</tr>

<tr>

<td colspan="2"><div align="center">

<input name="enviar" type="submit" id="enviar" value="Enviar minha Senha">

</div></td>

</tr>

</table>

</form>

3- script enviar_senha.php

<?php

 

# Função para conectar o banco de dados

include("config.php");

 

$e_mail = $_POST['e_mail'];

 

# Inclusão do arquivo de funções

 

$confirmacao = mysql_query("select * from usuarios WHERE nome= '$nome' AND e_mail = '$e_mail'"); //verifica se o login e a email conferem

while ($row = mysql_fetch_assoc($confirmacao)) {

$nome = $row["nome"]; //adiciona a variavel $login o login do usuario

$senha = $row["senha"]; //adiciona a variavel $senha a senha do usuario

$email = $row["e_mail"]; //adiciona a variavel $email o email do usuario

}

 

$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

 

if ( $contagem == 1 ) {

$msg = "Recuperação de senha" . chr(13) . chr(10);

$msg .= "Senha enviada em " . date("d/m/Y") . ", os dados seguem abaixo: " . chr(13) . chr(10) . chr(10);

$msg .= "Nome : " . $nome . chr(13) . chr(10);

$msg .= "Email : " . $email . chr(13) . chr(10);

$msg .= "Senha : $senha";

 

$cabecalho = "From:<scompras@arq.ufmg.br>";

$assunto = "Recuperação de Senha";

 

$cabecalho = mail($email, $assunto ,$msg, $cabecalho); //campos do email na ordem, email destinho (não deve ser alterada), assunto, conteudo (não deve ser alterado), remetente (também não altere)

 

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Sua senha foi enviada com sucesso para o email: $email</font></div>"; //resposta se o email foi enviado com sucesso

}

else

{

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Seu login ou email está incorreto.</font></div>"; //resposta se não foi possivel enviar o email

}

 

?>

1- Dúvida: Tudo isso está rodando no windows 2000, exibe a mensagem "sua senha foi enviado com sucesso para o email", mas email não chega.

2- Dúvida: Apache está instalado como localhost

3- Dúvida: Email do remetente: scompras@arq.ufmg.br

4- Dúvida: O que é smtp no ini.php que vocês falam em configurá-lo.

5- Dúvida: O que é phpmailer para windows

 

Se conseguir fazer esse script funcionar outro é o mesmo raciocínio.

 

OBS: Sabe quando aquela autor vai lançar o livro, pois vou comprá-lo.

 

Um abraço.

 

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Alissong (falei igual o Bial do BBB agora, hahaha)...

 

bom o script tá certinho bixo..

 

com relação ao email, você realmente vai precisar enviar email de localhost né ?

 

cara tava uma época que o SMTP da uol funcionava..

SMTP você sabe é o endereço do servidor de saída do e-mail...

no php.ini que fica na pasta c:/windows tem um algo escrito E-mail dá um pequisar, ou smtp, e deve estar vazia tenta mudar para esse servidor da uol..não te garanto funcionar não.. mas pode ser uma tentativa, sobre o phpmailer me desculpa, mas eu nunca o usei.. jah ouvi falar, mas não uso..

o teu PHP tá indo bem cara.. agora só precisa de um toque de design, hehehe..

 

abraços

 

Apolo Lira

 

ah o livro tá pra ir pro lançamento, eu me cadastrei no site lá uma parte que você compra com desconto e tal, ai já recebi um e-mail de confirmação e tudo...deve tá saindo pra dezembro,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apolo Lira,

 

Retirei esse código do php.ini.

[mail function]

; For Win32 only.

SMTP = arq.ufmg.br

smtp_port = 25

 

; For Win32 only.

sendmail_from = scompras@arq.ufmg.br

 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").

;sendmail_path =

Por que não entendi o que preciso configurá-lo:

1- Dúvida: Sabe aquele computador que fica ligado 24h está em rede e o servidor e-mail do meu trabalho termina assim: arq.ufmg.br

2- Dúvida: Qual porta devo usar a padrão 25

3- Dúvida: Isso aqui deve ficar assim mesmo: sendmail_from = scompras@arq.ufmg.br

 

Agora vou explicar como fiz isso em vb06, no windows 2000 tem uma dll chamada cdonts.dll que envia e-mail com anexo. Então, criei um formulário idêntico ao que vocês fazem em html com esse código abaixo:

Private Sub Command1_Click()

On Error GoTo Enviar ' Erro ao enviar e-mail

 

Dim Msg As CDO.Message

Dim Cof As CDO.Configuration

Dim mensagem As String

Dim sucesso As Boolean

Dim Camp

 

Set Msg = New CDO.Message

Set Cof = New CDO.Configuration

Set Camp = Cof.Fields

 

If txtdestino.Text = Empty Then

MsgBox " Digite o e-mail do destinatário", vbExclamation, "Campo Obrigatório"

txtdestino.SetFocus

Exit Sub

End If

If txtassunto.Text = Empty Then

MsgBox " Digite o assunto da mensagem", vbExclamation, "Campo Obrigatório"

txtassunto.SetFocus

Exit Sub

End If

 

With Camp

.Item(cdoSendUsingMethod) = 2 ' cdoSendUsingPort

.Item(cdoSMTPServer) = "arq.ufmg.br"

.Item(cdoSMTPConnectionTimeout) = 10 ' quick timeout

.Item(cdoSMTPAuthenticate) = 1

.Item(cdoSendUserName) = "yyyyy"

.Item(cdoSendPassword) = "xxxxxx"

.Update

 

End With

 

With Msg

Set .Configuration = Cof

.AddAttachment (txtanexo.Text)

.BCC = txtdestino.Text

.CC = txtremetente.Caption

.From = """compras"" <scompras@arq.ufmg.br>"

.Subject = txtassunto.Text

.TextBody = txttexto.Text

.Send

 

End With

 

If sucesso = True Then

mensagem = "O E-MAIL NÃO FOI ENVIADO COM SUCESSO!"

Else

mensagem = "O E-MAIL ENVIADO COM SUCESSO!"

 

End If

 

MsgBox mensagem, vbInformation, "Enviando emails usando CDONTS"

 

Enviar_exit:

gUltHora = Now

 

Exit Sub

Enviar:

MsgBox Err.Description, vbInformation, "Erro ao [Enviar]"

 

End Sub

Isso aqui, gUltHora = Now conta 5 minutos sem movimento no sistema. Então o sistema retorna para tela do login.

 

Então, você percebeu que não precisei configurar nada no servidor do meu trabalho e sim do próprio e-mail do setor. Portanto, existe ao parecido em php.

 

Um abraço.

 

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom,

 

tenta ver o que o PHPMailer faz, eu nunca o usei...

 

mas a configuração do php.ini tá ok, tenta assim, eu parei de tentar configurar servidor SMTP local aquele sendmail_from é o e-mail do administrador, quando dar erro de 500, 403 na página ele coloca o erro e esse e-mail do administrador, no caso ai você vai configurar no php.ini o servidor, ai na página onde você vai enviar o e-mail com a função mail() você coloca o e-mail from, e para enviar com anexo tem tópicos no fórum sobre mandar e-mail com anexo...

 

 

abraços..

 

Apolo Lira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apolo Lira,

 

Andei sumido, pois no fim do ano o bicho tá pegando em meu serviço. Bom, mas vamos ao que interessa. Conversei com meu diretor sobre a hospedagem do site em um provedor fora da universidade. A idéia não foi bem aceita, mas ele ficou de analisar a proposta. Portanto, faço uma pergunta. Existe um provedor meia boca grátis para testar o site fora do localhost.

Vou esperá-lo até fevereiro de 2008 na decisão, pois não posso ficar com um sistema bom, porém não quero deixá-lo somente no desktop.

O phpmailer testarei somente depois 07/12/07, pois na semana que vem não tenho tempo para trabalhar no sistema.

 

 

 

 

Um abraço.

 

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.