Jump to content

bdexterholland

Members
  • Content count

    1196
  • Joined

  • Last visited

Community Reputation

0 Comum

About bdexterholland

  • Rank
    Bacharel em sistemas de informação
  • Birthday 12/31/1984

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Carangola (Onde ???)
  • Interesses
    Trabalhar

Contato

  • Twitter
    @bdexterholland
  • Facebook
    https://facebook.com/williamoferreira
  1. bdexterholland

    onsubmit não é executado

    Boa tarde, Eu estou criando alguns forms via php para lançamento de comissão mês a mês para cada vendedor. Eu pensei em usar ajax para submeter cada form individualmente para assim, agilizar o processo e diminuir chances de erro. Estou tentando escrever uma rotina em javascript e associar ao OnSubmit dos forms. Para gerar os forms, estou usando o seguinte código: <?php $VSQL = "SELECT email, nome FROM lds_usuarios ORDER BY nome"; $VRES = mysqli_query($conn->getLink(), $VSQL); while($VLinha = mysqli_fetch_assoc($VRES)) { $nome = $VLinha['nome']; $email = $VLinha['email']; for($i = 1; $i <= 12; $i++) { $metas[$i] = 0; switch($i) { case 1: $mes[$i] = "Janeiro";break; case 2: $mes[$i] = "Fevereiro";break; case 3: $mes[$i] = "Março";break; case 4: $mes[$i] = "Abril";break; case 5: $mes[$i] = "Maio";break; case 6: $mes[$i] = "Junho";break; case 7: $mes[$i] = "Julho";break; case 8: $mes[$i] = "Agosto";break; case 9: $mes[$i] = "Setembro";break; case 10: $mes[$i] = "Outubro";break; case 11: $mes[$i] = "Novembro";break; case 12: $mes[$i] = "Dezembro";break; } } $ano = date('Y'); $MSQL = "SELECT valor, inicio FROM lds_nivelmeta WHERE usuario = '$email' AND '$ano' = YEAR(inicio) ORDER BY inicio"; $MRES = mysqli_query($conn->getLink(), $MSQL); while($MLinha = mysqli_fetch_assoc($MRES)) { $j = date('n', strtotime($MLinha['inicio'])); $metas[$j] = $MLinha['valor']; } echo("\n" . '<div class="vmeta">'); echo("\n" . '<form name="form-meta" onsubmit="submeterForm(this)">'); echo("\n <h3>$nome</h3>"); echo('<input type="hidden" name="meta-usuario" id="meta-usuario" value="' . $email . '" />'); echo('<input type="hidden" name="meta-ano" id="meta-ano" value="' . $ano . '" />'); for($i = 1; $i <= 12; $i++) { echo("\n" . ' <div class="listaMetas">'); echo("\n" . ' <div class="camposMetas">'); echo("\n" . ' <div class="colunaMeta"><label>'.$mes[$i].'</label><input name="meta-mes-'.$mes[$i].'" id="meta-mes-'.$mes[$i].'" type="number" value="' . $metas[$i] . '" /></div>'); echo("\n" . ' </div>'); echo("\n" . ' </div>'); } echo("\n" . ' <button class="btn btn-primary btn-block btn-md" type="submit">Salvar</button>'); echo("\n" . '</form>' . "\n"); echo("\n" . '</div>' . "\n"); } ?> estou tentando capturar com este código: var submeterForm = function(formulario) { var aux = formulario; window.alert(aux); return false; } Minha rotina não está sendo executada. Alguém poderia me ajudar a executar esta rotina apenas para os forms eu eu submeter?
  2. bdexterholland

    Redimensionar imagem

    Eu estou no celular e uma pesquisa no google nao será tão simples. Procure por StreechDraw e como trabalhar com canvas no Delphi.
  3. bdexterholland

    Gerar Pagamentos

    Camarada, você está esperando soluções prontas, estude mais o exemplo que passei e tente ajustar o seu source. Atenção: não é ajustar meu source ao seu e sim ajustar seu source...
  4. bdexterholland

    Gerar Pagamentos

    coloque um breakpoint na linha onde é feita a divisão, execute o programa com o F9 e tente gerar as parcelas, o delphi urá "pausar" a execução do programa na linha onde colocou o breakpoint, agora execute o programa com o botão F7, pressione F7 para cada linha do código. Bom, poste em qual linha foi gerada a mensagem de erro para analisarmos. Provavelmente o erro é porque o Access não suporta transações, não que eu saiba...
  5. bdexterholland

    Gerar Pagamentos

    Bom cara, vamos lá... Você precisa de uma tabela que armazene as parcelas. Sua tabela precisa conter pelo menos os seguintes campos: codigo --> Codigo interno da parcela. cliente --> Código do cliente no qual a parcela está vinculada. codigo_venda --> Código da venda no qual a parcela pertence. numero_parcela --> O numero da parcela, ou seja, se foi divida em 10 vezes, então esta seria a parcela 3 (exemplo). valor_parcela --> O valor da parcela, Vencimento_Parcela --> Data de vencimento da parcela. Com relação a inadimplência, você pode criar uma nova tabela e lançar os pagamentos realizados ou lançar na mesma tabela a data e o valor do pagamento, eu pessoalmente prefio a segunda opção, portanto vamos adicionar os outros campos: Data_Pagamento --> Data no qual foi realizado o pagamento. Valor_Pago --> Valor incluindo juros, se aplicável. Se a data de pagamento está em branco, pressupõe-se que não foi realizado o pagamento. DDL da tabela: Create Table Parcelas ( CodigoParcela int not null auto_increment primary key, /* Código da parcela na tabela de parcelas */ CodigoVenda int not null, /* Codigo da venda no qual a parcela se refere (Deve estar préviamente cadastrada em sua base */ CodigoCliente int not null, /* Campo opcional, analise friamente a necessidade dele */ NumeroParcela int not null, /* Qual parcela é esta? (parcela 1? 5? 99?) ValorParcela double not null, /* Qual é o valor desta parcela? */ DataVencimento DateTime not null, /* Data de vencimento da parcela */ ValorPago Double default null, /* Valor pago pela parcela, caso tenha juros, será valor da parcela + juros */ DataPagamento DateTime default null /* Data no qual foi realizada a quitação da parcela */ ); No delphi, iremos gerar as parcelas. Para gerar as parcelas, precisamos saber; Qual é a venda. Quem está devendo. Quais são os valores das parcelas. Quais as datas de vencimento das parcelas. Observe um detalhe neste ponto: Eu estou informando o cliente 2 vezes, isto pode ser desnecessário (mais provavel que seja mesmo), portanto, é possível não informar o cliente dentro da tabela de parcela. Supondo que em seu sistema eu estou cadastrado com o código 2512, fiz uma compra no valor de R$ 800,00 dividido em 10 vezes e quero o vencimento para todo dia 15, a partir do mês de Maio, você lançou a venda em seu sistema e a mesma foi cadastrada com o codigo 20111234321. Uma vez que sabemos quem comprou, qual a venda, qual o valor e em quantas parcelas foi dividido o pagamento, vamos gerar as parcelas: Para saber o valor de cada parcela, vamos dividir o valor total da venda pelo número de parcelas: Var ValorParcela : Double; CodigoVenda : Integer; CodigoCliente: Integer; NumeroParcela: Integer; TotalParcelas: Integer; DataParcela : DateTime; begin CodigoVenda := 20111234321; CodigoCliente := 2512; TotalParcelas := 10; ValorParcela := 800/TotalParcelas; Query.SQL.Clear; Query.SQL.add('SET AUTOCOMMIT=0;START TRANSACTION'); //Estude transações no banco de dados que está utilizando Try Query.ExecSQL; except MessageDLG('Falha grave! Abortando...', mtError, [mbOK], 0); exit; end; for NumeroParcela := 1 to NumeroParcelas do begin DataParcela := StrToDate('15/05/2011'); //Bole uma forma de gerar a data para cada parcela... Query.SQL.Clear; Query.SQL.add('INSERT INTO parcelas'); Query.SQL.add('(CodigoVenda, CodigoCliente, NumeroParcela, ValorParcela, DataVencimento)'); Query.SQL.Add('VALUES'); Query.SQL.Add('(:PVenda, :PCliente, :PParcela, :PValor, :PData);'); Query.ParamByName('PVenda').AsInteger := CodigoVenda; Query.ParamByName('PCliente').AsInteger := CodigoCliente; Query.ParamByName('PParcela').AsInteger := NumeroParcela; Query.ParamByName('PValor').AsDouble := ValorParcela; //Não sei sei existe o campo asDouble para ParamByName, tente asFloat se necessário Query.ParamByName('PData').AsDate := DataParcela; ShowMessage(Query.SQL.Text); //Só para conferir como ficou a situação... try Query.ExecSQL; except Beep; MessageDLG('Falha ao gerar a parcela ' + DateToStr(DataParcela), mtError, [mbOk], 0); end; end; Query.SQL.Clear; Query.SQL.add('COMMIT;'); //Estude transações no banco de dados que está utilizando Try Query.ExecSQL; except MessageDLG('Falha grave! Abortando...', mtError, [mbOK], 0); exit; end; MessageDLG('Fim da Geração de parcelas!', mtInformation, [mbOK], 0); ----------------------- Estude este exemplo, não cole-o no seu código....
  6. bdexterholland

    Gerar Pagamentos

    MonthOf Faz parte da Unit DateUtils, ela puxa o mês referente a data informada. SQL é uma variável que deve ser declarada como String ou pode ser a propriedade SQL do seu dataSet. O erro Incompatible types: 'String' and 'Extended' é gerado porque eu escrevi exemplo de qualquer forma, apenas para usar de exemplo, na linha onde é gerada a query, faz necessário converter a variável valorParcela usando a função FloatToStr. O error Incompatible types: 'String' and 'Integer é gerado porque faz necessário converter a variável i para o tipo string usando a função IntToStr. Os outros dois erros são referente a forma que você colou o código (que não deveria ter feito, deveria analisar o exemplo e adapatar a sua realidade).
  7. bdexterholland

    Gerar Pagamentos

    Pois então kara, você precisa saber qual será o valor de cada parcela, com base no shot que você postou temos uma conta de 8000,00 em 26 parcelas, logo : var valorParcela : Double; I : integer; dataVencimento : String valorParcela := 8000 / 26; for i := 1 to 26 do begin dataVencimento := ('26/' + IntToStr(MonthOf(now) + I) + '/2011'); SQL := 'INSERT INTO parcelas (cliente, valor_Parcela, numero_Parcela, data_Vencimento) VALUES (' + Cliente.Codigo + ', ' + valorParcela + ', ' + i + ', ' + dataVencimento + ');'; //ExecutaSQL; end;
  8. bdexterholland

    Gerar Pagamentos

    CREATE TABLE parcelas ( codigo bigint not null auto_increment primary key, cliente integer not null, codigo_venda integer not null, numero_parcela integer not null, valor_parcela double not null, data_pagamento integer default null, /*outros campos*/ Acho que sua dificuldade não está relacionado a programação e sim a modelagem do DB...
  9. bdexterholland

    Apresente-se...

    Não sou muito novo aqui, mas acho legal que todos respondam ^^ (tô aqui a mais tempo que o hugo, porém menos ativo) 1) Quem é Você? William de Oliveira Ferreira, 22 anos, Bacharel em Sistemas de Informação. Moro em Carangola (onde???) Minas Gerais 2) Do que Gosta? Rock n' Roll, Punk Rock, Tony Hawk´s Pro Skater, Windows e , é claro, Delphi 3) Programa a Quanto Tempo ? Minha primeira esperiencia com programção foi na faculdade, isso no ano 2004 usando o free pascal no linux. Antes disso, fiz um curso de VB que é melhor nem contar pois não lembro de nada e o pilantra não terminou o curso, fugiu antes. Fora isso, apenas fazia arquivos .bat pois baseiam-se em comandos do DOS. 4) Porque escolheu Delphi ? Conheci o Pascal na faculdade, gostei da linguagem, e no segundo período, um amigo me apresentou uma cópia do Delphi7, porém, emprestei o cd, aí vocês já imaginam, né? Consegui com um outro amigo o Delphi5, acostumei e apaixonei ^^. Agora consegui o Delphi7 denovo e mesmo com os bugs, gosto de usar ele... 5) Como conheceu o Fórum iMasters ? Google. 6) O Que o levou a se cadastrar ? Na época do cadastro, procurava por 'pascal' no google e todos os fóruns com atividade e conteúdo, eu me cadastrava. Nesse e na Unidev, eu gostei e participo mais... 7) O Que espera do Fórum ? O que ele já me tráz, informações e parceiros de programação 8) MSN, GTalk, E-mail, Skype... e Afins...? bdexterholland@gmail.com > gTalk e main e-mail bdexterholland@hotmail.com > MSN bdexterholland > Skipe difícil, não? :D
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.