Jump to content


Photo

Calcular Peso Por Estado


  • Faça o login para participar
9 replies to this topic

#1 Subzero

Subzero

    Ativo

  • Usuários
  • 311 posts
  • Sexo:Não informado

Posted 27/04/2005, 14:23

Boa tarde.

Estou com uma duvida nessa rotina


eu tenho uma tabela sp com os fretes a serem calculados pelo peso da mercadoria.


exemplo:

produto 1 = peso 500 grs

ai na tabela tem vários valores dependendo do peso, exemplo, até 1 kg= 10,63 de 1 a 2 kg = 15,75 e assim por diante.

O problema é que ele está pegando apenas o primeiro valor de cada estado, o que eu preciso é que ele pegue os valores do frete conforme o peso da mercadoria.

Espero ter sido claro na dúvida.

Obrigado

======

Veja o que eu estou utilizando agora


if ($HTTP_SESSION_VARS['global_quilos'] == 0) {
	$HTTP_SESSION_VARS['global_quilos'] = 1;
}

if ($form_tipo_cidade == "capital") {
	$HTTP_SESSION_VARS['form_cidade'] = "Capital";
}

switch($HTTP_SESSION_VARS['form_estado']) {
   case "AC":
      $regiao_sedex = 8;
       break;
   case "AL":
       $regiao_sedex = 6;
       break;
   case "AP":
       $regiao_sedex = 8;
       break;
    
   case "AM":
       $regiao_sedex = 8;
       break;
   case "BA":
       $regiao_sedex = 5;
       break;
   case "CE":
       $regiao_sedex = 8;
       break;
    
   case "DF":
       $regiao_sedex = 3;
       break;
   case "ES":
       $regiao_sedex = 3;
       break;
   case "GO":
       $regiao_sedex = 4;
       break;
    
   case "MA":
       $regiao_sedex = 8;
       break;
   case "MT":
       $regiao_sedex = 5;
       break;
   case "MS":
       $regiao_sedex = 3;
       break;
    
   case "MG":
       $regiao_sedex = 2;
       break;
   case "PA":
       $regiao_sedex = 8;
       break;
   case "PB":
       $regiao_sedex = 8;
       break;
    
   case "PR":
       $regiao_sedex = 2;
       break;
   case "PE":
       $regiao_sedex = 7;
       break;
   case "PI":
       $regiao_sedex = 7;
       break;
    
   case "RJ":
       $regiao_sedex = 2;
       break;
   case "RN":
       $regiao_sedex = 8;
       break;
   case "RS":
       $regiao_sedex = 3;
       break;
    
   case "RO":
       $regiao_sedex = 7;
       break;
   case "RR":
       $regiao_sedex = 9;
       break;
   case "SC":
       $regiao_sedex = 2;
       break;
    
   case "SP":
       $regiao_sedex = 1;
       break;
   case "SE":
       $regiao_sedex = 6;
       break;
   case "TO":
       $regiao_sedex = 5;
       break;
}

Sei que está faltando uma rotina para isso mas como faria ela?

Edição feita por: Balala, 27/04/2005, 14:39.


#2 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 27/04/2005, 14:42

Utilize o comando Editar ;)

Agora basta formular as condicionais, comece da maior, pela menor:

if( $peso > 10 )
{
  $preco = 10;
} elseif( $peso > 9 )
{
  $preco = 9;
} elseif( $peso > 8 )
{
  $preco = 8;
} elseif //...


Já pelo SQL:

WHERE campo_min < $peso AND campo_max > $peso

Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#3 Subzero

Subzero

    Ativo

  • Usuários
  • 311 posts
  • Sexo:Não informado

Posted 27/04/2005, 14:56

entendi...

mas utilizando esses parametros que vc me passou como ficaria no meu codigo atual?

Obrigado

#4 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 27/04/2005, 15:18

O problema é que para cada região o valor é diferente neh...

Por isso não adiantaria apenas usar ...

if( $peso > 10 )
{
  $preco = 10;
} elseif( $peso > 9 )
{
  $preco = 9;
} elseif( $peso > 8 )
{
  $preco = 8;
} elseif //...


eu acho ... :huh:


Ná lógica teria que fazer a comparação com a região ...

tipo

if( $região == "1"  &&  $peso >= 10)
{
$preco = 9;

etc...


mas isso geraria uma po.rrada de linhas ...

Bom tentei ajudar com a lógica, mas não sei ao certo se ajudei de forma mais correta ...

... quem sabe mais conseguiria transformar essa po.rrada de linhas em poucas ...

talvez contruindo uma função pra cada estado, onde vc poderia guardar todas num file só e includar depois onde vc quer usar a bagaça.


no mais .... sai do meu conhecimento ... por enquanto. ;)

(y)Até mais

#5 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 27/04/2005, 15:24

Crab_, pelo menos, eu achei que, na tabela que ele tem os valores, ele pega esse $regiao_sedex e utiliza como um código para capturar o valor, ou seja, primeiro identifica a área e depois calcula o peso. Eu acho que é assim, se não for, teria que ser do jeito que você comentou, talvez com algumas coisas para não criar essas 500 mil linhas de condicional, mas seria algo no estilo.

entendi...

mas utilizando esses parametros que vc me passou como ficaria no meu codigo atual?

Obrigado


Qual a dúvida para colocar no seu código?!
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#6 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 27/04/2005, 15:29

Crab_, pelo menos, eu achei que, na tabela que ele tem os valores, ele pega esse $regiao_sedex e utiliza como um código para capturar o valor, ou seja, primeiro identifica a área e depois calcula o peso.

Bom meu entendimento ainda é curto ( mas só o entendimento hein ... :P ) em PHP e não entendi muito oque ele falou ... se for assim como tu disse ... blz...

Enfim ... a bola tá com ele.

(y)Até mais

#7 Subzero

Subzero

    Ativo

  • Usuários
  • 311 posts
  • Sexo:Não informado

Posted 27/04/2005, 15:31

no caso utilizando essa condição

if( $peso > 10 )
{
  $preco = 10;
} elseif( $peso > 9 )
{
  $preco = 9;
} elseif( $peso > 8 )
{
  $preco = 8;
} elseif //...

daria certo?

mas no caso eu tenho que associar o peso com a tabela.
Exemplo:

produto 1 = peso 500 grs

se eu pedir duas unidades dará 1 kg ai na minha tabela de sp está com o valor de 10,63 ai teria que pegar esse valor pelo peso, e se for mais peso do que isso pegar o segundo valor de 1 a 2 kgs...

isso que não está ocorrendo agora

#8 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 27/04/2005, 15:46

daria certo?


"tente, levante sua mão sedenta e recomece a andar
nao pense que a cabeça aguenta se vc paraaaaar" -Raul Seixas


Bom cara, experimente as soluções apresentadas e de acordo com as dificuldades ou sucesso, poste pra gente ver o andamento (y)

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#9 Subzero

Subzero

    Ativo

  • Usuários
  • 311 posts
  • Sexo:Não informado

Posted 27/04/2005, 16:00

"tente, levante sua mão sedenta e recomece a andar
nao pense que a cabeça aguenta se vc paraaaaar" -Raul Seixas


Bom cara, experimente as soluções apresentadas e de acordo com as dificuldades ou sucesso, poste pra gente ver o andamento  

Vou tentar...tendo sucesso ou não vou postar ok...

Abraços (y)

#10 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 29/10/2017, 12:01

Best Buy Generic Levitra Online Prix Du Cialis 20mg En France viagra online pharmacy Viagra Super Active 150mg
Preise Viagra Cialis Il Viagra A 20 Anni Cialis E Tiroide viagra Kamagra Test Can You Drink Alcohol With Amoxicillin
Propecia Generico Finasteride 1mg Amoxicillin Drug Expiration viagra Medicament Propecia Effet Secondaire Levitra Price Uk




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq