Jump to content
Fórum Script Brasil
  • 0

Ajuda com processo


rcamu

Question

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 to post
Share on other sites

10 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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>

 

Edited by rcamu
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644506
×
×
  • Create New...