Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com processo


rcamu

Pergunta

Pessoal uma ajuda num processo que tenho.

No meu sistema tem uma tela de pedidos onde o funcionário vai incluindo os produtos e ele vai somando, dependendo do valor a compra pode ser parcelada (exemplo: 30/60, 30/60/90, etc)

Como da para fazer com quem a condição de pagamento seja captura da tabela de prazos de acordo com o valor do pedido.

Exemplo:

Se o total do pedido for 1.000,00 a condição de pagamento seria 30 dias

Se o total do pedido for 1.500,00 a condição de pagamento seria 30/60 dias

Se o total do pedido for 2.000,00 a condição de pagamento seria 30/60/90 dias

Na tabela de condições está assim:

  

                                     De R$ 900,00 até R$ 1.400,00 – 30/45 Dias

                                           De R$ 1.401,00 até R$ 1.800,00 – 30/45/60 Dias

                                           Acima de R$ 1.801,00 – 30/60/90 Dias

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Em 13/04/2019 em 11:25, Leonardo Persan disse:

Você salvou essas informações no banco?
Faz um select * nessa tabela e cola aqui.

A escolha do parcelamento é feita na mesma página de adição de produtos?
Se sim você vai ter que fazer um AJAX

Leonardo, bom dia,

Sim a escolha é feita na mesma pagina de adição dos produtos.

Segue como está a tabela:

 
Textos completos id de ate condicao
Edita Edita Copiar Copiar Apagar Apagar 1 900,00 1.400,00 30/45
Edita Edita Copiar Copiar Apagar Apagar 2 1.401,00 1.800,00 30/45/60
Edita Edita Copiar Copiar Apagar Apagar 3 1.801,00 50.000,00 30/60/90

 

CREATE TABLE `prazos` (
  `id` int(11) NOT NULL,
  `de` varchar(50) NOT NULL,
  `ate` varchar(50) NOT NULL,
  `condicao` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Extraindo dados da tabela `prazos`
--

INSERT INTO `prazos` (`id`, `de`, `ate`, `condicao`) VALUES
(1, '900,00', '1.400,00', '30/45'),
(2, '1.401,00', '1.800,00', '30/45/60'),
(3, '1.801,00', '50.000,00', '30/60/90');

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

acho que os prazos e valores não precisam ficar na tabela amigo

Leonardo com certeza vai te ajudar, mas achoq  a sua resposta esta na propria pergunta

Se o valor < que X {exiba prazo 1}

Se o valor esta entre x e y {exiba prazo 2}

se valor > que y {exiba prazo 3}

ou se nenhum {não exiba prazo}

Link para o comentário
Compartilhar em outros sites

  • 0
28 minutos atrás, rxhxtx disse:

Leonardo com certeza vai te ajudar, mas achoq  a sua resposta esta na propria pergunta

Não estava não, o código varia como estão organizados os dados

29 minutos atrás, rxhxtx disse:

acho que os prazos e valores não precisam ficar na tabela amigo

Se ele for administrar isso através de um painel precisa sim.

24 minutos atrás, rxhxtx disse:

Outra coisa que reparei, que entre 1400,00 e 1401,00 existem outros 99 resultados que vao dar erro, teria que ser 1400,00 e 1400,01

Na verdade o ideal é ter um campo de valor só, o valor mínimo, não há necessidade do valor máximo para cada parcelamento.

27 minutos atrás, rcamu disse:

e como poderia fazer?

<?php
// Falta a parte de conexão com o Banco de Dados
$prazos = 'SELECT * FROM prazos ORDER BY de';
$return['condicao'] = false;
foreach ($conn->query($prazos) as $prazo) {
	if ($_GET['valor'] > $prazo['de']) {
		$return['condicao'] = $prazo['condicao'];
    }
}
echo json_encode($return);

Ai você pode usar o método get do jQuery para fazer a requisição por AJAX
https://api.jquery.com/jquery.get/

O AJAX deve enviar o valor da compra como parametro para o PHP selecionar qual é a condição correta

Link para o comentário
Compartilhar em outros sites

  • 0
26 minutos atrás, Leonardo Persan disse:

Se ele for administrar isso através de um painel precisa sim.

entendi, mas não daria para criar uma coluna prazo com uns valores 1, 2, 3 

e fazer por php para ficar menos dados dentro da tabela?

por exemplo

se $valorTotal maior ou igual 1400, defina $prazo como 3
se $valorTotal maior igual 700, defina $prazo como 2
se $valorTotal menor 700, defina $prazo como 1

 

ai usar o switch$prazo, caso '1' define $variaveis.. caso '2'..assim por diante 

 

ou calcular por modulus % , já que o caso seria cada X reais é mais uma parcela

 

só por dúvida mesmo, sou bem leigo e quero aprender tudo que der o mais rapido possivel hehe

porque eu acho que se for para incluir todos os dados, a exibição poderá ficar mais lenta, não é?

e com os dados todos pré definidos na propria pagina usando um require, ele so teria que retornar 1 valor 

estou errado? é impraticavel?

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
50 minutos atrás, rxhxtx disse:

e fazer por php para ficar menos dados dentro da tabela?

Isso daria sim, na verdade eu até prefiro desse jeito

52 minutos atrás, rxhxtx disse:

porque eu acho que se for para incluir todos os dados, a exibição poderá ficar mais lenta, não é?

Fica, mas a diferença é tão pequena que normalmente não compesa

Link para o comentário
Compartilhar em outros sites

  • 0

também estou aprendendo, no caso de ficar na própria pagina, como daria para fazer?

o campo do total no meu formulario está assim:

<strong><b><font size="3"> <font color="#000000">Total : <input name="total" type="text" readonly="readonly" required maxlength="30" id="total"/><br><br>

e o campo de condição de pagamento está assim:

<strong><b><font size="3"> <font color="#000000">Condição de Pagamento :</strong>
<label for="condicao" style="color:#030"><input type="radio" required name="condicao" value="30 Dias" id="tipo_nf" /> 30 Dias</label>
<label for="condicao" style="color:#030"><input type="radio" required name="condicao" value="30/45 Dias" id="tipo_nf" /> 30/45 Dias</label>
<label for="condicao" style="color:#C00"><input type="radio" required name="condicao" value="30/45/60 Dias" id="tipo_nf" /> 30/45/60 Dias</label> 
<label for="condicao" style="color:#C00"><input type="radio" required name="condicao" value="30/60/90 Dias" id="tipo_nf" /> 30/60/90 Dias</label>   
  
  

 

Como eu da para lincar esses 2 campos?  

Até achei um modelo de ajax que faz isso, o problema e que ele busca somente o valor exato tipo: 1.400,00 se for 1.400,01 ele não acha(corretamente pois não consta na tabela).

 function retorna( $total, $db )
  {
    $sql = "SELECT *
      FROM `cliente` WHERE `nome` = '{$total}' ";

    $query = $db->query( $sql );

    $arr = Array();
    if( $query->num_rows )
    {
      while( $dados = $query->fetch_object() )
      {
        $arr['prazo'] = $dados->prazo;
       
      }
    }
    else
      $arr['prazo'] = 'não encontrado';

    return json_encode( $arr );
  }
<html>
<head>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("input[name='total']").blur(function(){
      var $prazo = $("input[name='prazo']");
     // var $telefone = $("input[name='telefone']");

      $prazo.val('Carregando...');
      //$telefone.val('Carregando...');

        $.getJSON(
          'function.php',
          { total: $( this ).val() },
          function( json )
          {
            $prazo.val( json.prazo );
        //    $telefone.val( json.telefone );
          }
        );
    });
  });
  </script>
</head>
<body>
  <form action="" method="post">
    <label>Nome: <input type="text" name="total" value="1.400,00"/></label>
    <label>Prazo: <input name="prazo" type="text" disabled="disabled" value="" /></label>
   
  </form>
</body>
</html>

 

Editado por rcamu
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...