HEX
Server: LiteSpeed
System: Linux cp01.bhostbrasil.com.br 5.14.0-611.16.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 22 03:40:39 EST 2025 x86_64
User: onlyfibr (1083)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/onlyfibr/public_html/models/model_fretes.php
<?php

Class model_fretes extends model{     

	
	public function lista($cep_destino, $valor_subtotal, $cod_sessao, $selecionado = null){
		
		$valores = new model_valores();
		$produtos = new model_produtos();
		$consuta_cep = new model_cep();
		
		$lista = array();
		$i = 0;

		if($cep_destino){

			//////////////////////////////////////////////
			// calculo para peso dos produtos
			// caso não tenha produtos com cobrança de frete ou peso é gratis

			// calcula peso produtos
			$peso_total = 0;
			$itens = 0;
			
			$conexao = new mysql();
			$coisas_peso = $conexao->Executar("SELECT produto, quantidade FROM pedido_loja_carrinho WHERE sessao='$cod_sessao' ");
			while($data_peso = $coisas_peso->fetch_object()){

				$data_produto = $produtos->carrega_produto_codigo($data_peso->produto);

				if($data_produto->digital == 0){

					if($data_produto->fretegratis != 1){

						// adiciona o minio de 10 gramas por produto
						if($data_produto->peso == 0){
							$peso = 300;
						} else {
							$peso = $data_produto->peso;
						}

						$peso_total = $peso_total + ($peso * $data_peso->quantidade);
						
						$itens++;
					}
				}
			}

			if($itens != 0){

				///////////////////////////////////////				
				// busca dados do cep
				$retorno_cep = $consuta_cep->retorno($cep_destino);

 				//confere estado
				$cep_estado = (string) $retorno_cep['uf'];
				$cep_cidade = (string) $retorno_cep['cidade'];

				if($cep_estado AND $cep_cidade){ // confere se reconheceu a cidade pelo cep

					/////////////////////////////////////////////////////////
					// lista de fretes disponiveis do painel
					$conexao = new mysql();
					$coisas_frete = $conexao->Executar("SELECT * FROM frete WHERE ativo='0' order by id desc ");
					while($data_frete = $coisas_frete->fetch_object()){

						////////////////////////////////////////////////////////////////////////////////
						// adiciona regras conforme tipo de entrega
						switch ($data_frete->id) {



							////////////////////////////////////
							// frete por correio pac

							case '1':

							$cep_origem = $data_frete->cep;
							$bloqueio = 0;
							$valor_frete_linha_retorno = 0;
							
							// gratis caso ultrapassar valor tal
							if( ($data_frete->gratis_acima_de <= $valor_subtotal) AND ($data_frete->gratis_acima_de > 0) ){
								
								$valor_frete_linha_retorno = 0;

							} else {

								//calculos basicos de acrescimo
								$percentual = $data_frete->acrescimo_porc / 100.0;
								$valor_frete_acresimo = $valores->trata_valor_calculo( $percentual * $valor_subtotal );
								$valor_frete_linha_retorno = $data_frete->acrescimo_fixo + $valor_frete_acresimo;
								
								$fretefixo = false;
								$valor_frete_fixo = 0;

								if($cep_estado == 'AC'){
									if($data_frete->estado_tipo_AC == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AC;
									}
								}
								if($cep_estado == 'AL'){
									if($data_frete->estado_tipo_AL == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AL;
									}
								}
								if($cep_estado == 'AP'){
									if($data_frete->estado_tipo_AP == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AP;
									}
								}if($cep_estado == 'AM'){
									if($data_frete->estado_tipo_AM == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AM;
									}
								}
								if($cep_estado == 'BA'){
									if($data_frete->estado_tipo_BA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_BA;
									}
								}
								if($cep_estado == 'CE'){
									if($data_frete->estado_tipo_CE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_CE;
									}
								}
								if($cep_estado == 'DF'){
									if($data_frete->estado_tipo_DF == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_DF;
									}
								}
								if($cep_estado == 'ES'){
									if($data_frete->estado_tipo_ES == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_ES;
									}
								}
								if($cep_estado == 'GO'){
									if($data_frete->estado_tipo_GO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_GO;
									}
								}
								if($cep_estado == 'MA'){
									if($data_frete->estado_tipo_MA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MA;
									}
								}
								if($cep_estado == 'MT'){
									if($data_frete->estado_tipo_MT == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MT;
									}
								}
								if($cep_estado == 'MS'){
									if($data_frete->estado_tipo_MS == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MS;
									}
								}
								if($cep_estado == 'MG'){
									if($data_frete->estado_tipo_MG == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MG;
									}
								}
								if($cep_estado == 'PA'){
									if($data_frete->estado_tipo_PA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PA;
									}
								}
								if($cep_estado == 'PB'){
									if($data_frete->estado_tipo_PB == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PB;
									}
								}
								if($cep_estado == 'PR'){
									if($data_frete->estado_tipo_PR == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PR; 
									}
								}
								if($cep_estado == 'PE'){
									if($data_frete->estado_tipo_PE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PE;
									}
								}
								if($cep_estado == 'PI'){
									if($data_frete->estado_tipo_PI == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PI;
									}
								}
								if($cep_estado == 'RJ'){
									if($data_frete->estado_tipo_RJ == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RJ;
									}
								}
								if($cep_estado == 'RN'){
									if($data_frete->estado_tipo_RN == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RN;
									}
								}
								if($cep_estado == 'RS'){
									if($data_frete->estado_tipo_RS == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RS;
									}
								}
								if($cep_estado == 'RO'){
									if($data_frete->estado_tipo_RO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RO;
									}
								}
								if($cep_estado == 'RR'){
									if($data_frete->estado_tipo_RR == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RR;
									}
								}
								if($cep_estado == 'SC'){
									if($data_frete->estado_tipo_SC == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SC;
									}
								}
								if($cep_estado == 'SP'){
									if($data_frete->estado_tipo_SP == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SP;
									}
								}
								if($cep_estado == 'SE'){
									if($data_frete->estado_tipo_SE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SE;
									}
								}
								if($cep_estado == 'TO'){
									if($data_frete->estado_tipo_TO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_TO;
									}
								}
								
								if($fretefixo){
									// se tem frete fixo para o estado faz o calculo
									$valor_frete_linha_retorno = $valor_frete_linha_retorno + $valor_frete_fixo;						
								} else {
									
									$peso_total_frete = $peso_total;
									//se não calcula
									if($peso_total_frete != 0){
										
										//se não calcula pelo pagseguro
										if($peso_total_frete < 300){
											$peso_total_frete = 300;
										}

										$peso_tratado = number_format($peso_total_frete/1000, 1, '.', ',');
										$retorno = $this->calcular_frete_correios($cep_origem,$cep_destino,$peso_tratado,0,'41106');
										$valor_frete_retorno = $valores->trata_valor_banco($retorno->Valor);

										if($valor_frete_retorno == 0){
											$bloqueio = 1;
										}
										$valor_frete_linha_retorno = $valor_frete_linha_retorno + $valor_frete_retorno;

									}

								}

							}

							// bloqueia caso algo errado
							if($bloqueio == 0){

								if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

								$lista[$i]['id'] = $data_frete->id;
								$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
								$lista[$i]['selected'] = $selected;
								$lista[$i]['valor_frete'] = $valor_frete_linha_retorno;
								$lista[$i]['valor_frete_tratado'] = $valores->trata_valor($valor_frete_linha_retorno);
								$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
								$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

								$i++;
							}

							break;



							////////////////////////////////////
							// frete por correio sedex

							case '2':

							$cep_origem = $data_frete->cep;
							$bloqueio = 0;
							$valor_frete_linha_retorno = 0;
							
							// gratis caso ultrapassar valor tal
							if( ($data_frete->gratis_acima_de <= $valor_subtotal) AND ($data_frete->gratis_acima_de > 0) ){
								
								$valor_frete_linha_retorno = 0;
								
							} else {
								
								//calculos basicos de acrescimo
								$percentual = $data_frete->acrescimo_porc / 100.0;
								$valor_frete_acresimo = $valores->trata_valor_calculo( $percentual * $valor_subtotal );
								$valor_frete_linha_retorno = $data_frete->acrescimo_fixo + $valor_frete_acresimo;
								
								$fretefixo = false;
								$valor_frete_fixo = 0;

								if($cep_estado == 'AC'){
									if($data_frete->estado_tipo_AC == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AC;
									}
								}
								if($cep_estado == 'AL'){
									if($data_frete->estado_tipo_AL == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AL;
									}
								}
								if($cep_estado == 'AP'){
									if($data_frete->estado_tipo_AP == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AP;
									}
								}if($cep_estado == 'AM'){
									if($data_frete->estado_tipo_AM == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_AM;
									}
								}
								if($cep_estado == 'BA'){
									if($data_frete->estado_tipo_BA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_BA;
									}
								}
								if($cep_estado == 'CE'){
									if($data_frete->estado_tipo_CE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_CE;
									}
								}
								if($cep_estado == 'DF'){
									if($data_frete->estado_tipo_DF == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_DF;
									}
								}
								if($cep_estado == 'ES'){
									if($data_frete->estado_tipo_ES == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_ES;
									}
								}
								if($cep_estado == 'GO'){
									if($data_frete->estado_tipo_GO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_GO;
									}
								}
								if($cep_estado == 'MA'){
									if($data_frete->estado_tipo_MA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MA;
									}
								}
								if($cep_estado == 'MT'){
									if($data_frete->estado_tipo_MT == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MT;
									}
								}
								if($cep_estado == 'MS'){
									if($data_frete->estado_tipo_MS == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MS;
									}
								}
								if($cep_estado == 'MG'){
									if($data_frete->estado_tipo_MG == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_MG;
									}
								}
								if($cep_estado == 'PA'){
									if($data_frete->estado_tipo_PA == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PA;
									}
								}
								if($cep_estado == 'PB'){
									if($data_frete->estado_tipo_PB == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PB;
									}
								}
								if($cep_estado == 'PR'){
									if($data_frete->estado_tipo_PR == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PR; 
									}
								}
								if($cep_estado == 'PE'){
									if($data_frete->estado_tipo_PE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PE;
									}
								}
								if($cep_estado == 'PI'){
									if($data_frete->estado_tipo_PI == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_PI;
									}
								}
								if($cep_estado == 'RJ'){
									if($data_frete->estado_tipo_RJ == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RJ;
									}
								}
								if($cep_estado == 'RN'){
									if($data_frete->estado_tipo_RN == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RN;
									}
								}
								if($cep_estado == 'RS'){
									if($data_frete->estado_tipo_RS == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RS;
									}
								}
								if($cep_estado == 'RO'){
									if($data_frete->estado_tipo_RO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RO;
									}
								}
								if($cep_estado == 'RR'){
									if($data_frete->estado_tipo_RR == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_RR;
									}
								}
								if($cep_estado == 'SC'){
									if($data_frete->estado_tipo_SC == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SC;
									}
								}
								if($cep_estado == 'SP'){
									if($data_frete->estado_tipo_SP == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SP;
									}
								}
								if($cep_estado == 'SE'){
									if($data_frete->estado_tipo_SE == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_SE;
									}
								}
								if($cep_estado == 'TO'){
									if($data_frete->estado_tipo_TO == 1){
										$fretefixo = true;
										$valor_frete_fixo = $data_frete->estado_fixo_TO;
									}
								}
								
								if($fretefixo){
									// se tem frete fixo para o estado faz o calculo
									$valor_frete_linha_retorno = $valor_frete_linha_retorno + $valor_frete_fixo;						
								} else {
									
									$peso_total_frete = $peso_total;
									//se não calcula
									if($peso_total_frete != 0){
										
										//se não calcula pelo pagseguro
										if($peso_total_frete < 300){
											$peso_total_frete = 300;
										}

										$peso_tratado = number_format($peso_total_frete/1000, 1, '.', ',');
										$retorno = $this->calcular_frete_correios($cep_origem,$cep_destino,$peso_tratado,0,'40010');
										$valor_frete_retorno = $valores->trata_valor_banco($retorno->Valor);
										
										if($valor_frete_retorno == 0){
											$bloqueio = 1;
										}
										$valor_frete_linha_retorno = $valor_frete_linha_retorno + $valor_frete_retorno;
										
									}

								}

							}

							// bloqueia caso algo errado
							if($bloqueio == 0){

								if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

								$lista[$i]['id'] = $data_frete->id;
								$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
								$lista[$i]['selected'] = $selected;
								$lista[$i]['valor_frete'] = $valor_frete_linha_retorno;
								$lista[$i]['valor_frete_tratado'] = $valores->trata_valor($valor_frete_linha_retorno);
								$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
								$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

								$i++;
							}

							break;



							////////////////////////////////////
							// retirada no local

							case '3':

							if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

							$lista[$i]['id'] = $data_frete->id;
							$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
							$lista[$i]['selected'] = $selected;
							$lista[$i]['valor_frete'] = 0;
							$lista[$i]['valor_frete_tratado'] = '0,00';
							$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
							$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

							$i++;

							break;



							////////////////////////////////////
							// transportadora padrao

							case '4':

							// gratis caso ultrapassar valor tal
							if( ($data_frete->gratis_acima_de <= $valor_subtotal) AND ($data_frete->gratis_acima_de > 0) ){
								
								if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

								//calculos basicos de acrescimo
								$percentual = $data_frete->acrescimo_porc / 100.0;
								$valor_frete_acresimo = $valores->trata_valor_calculo( $percentual * $valor_subtotal );
								$valor_frete_linha_retorno = $data_frete->acrescimo_fixo + $valor_frete_acresimo;

								$lista[$i]['id'] = $data_frete->id;
								$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
								$lista[$i]['selected'] = $selected;
								$lista[$i]['valor_frete'] = $valor_frete_linha_retorno;
								$lista[$i]['valor_frete_tratado'] = $valores->trata_valor($valor_frete_linha_retorno);
								$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
								$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

								$i++;
								
							} else {
 							// frete gratis acima de valor

								if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

								$lista[$i]['id'] = $data_frete->id;
								$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
								$lista[$i]['selected'] = $selected;
								$lista[$i]['valor_frete'] = 0;
								$lista[$i]['valor_frete_tratado'] = $valores->trata_valor(0);
								$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
								$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

								$i++;

							}

							break;



							////////////////////////////////////
							// entrega local

							case '5':

							if($cep_cidade == $data_frete->proximidade_cidade){

 								// gratis caso ultrapassar valor tal
								if( ($data_frete->gratis_acima_de <= $valor_subtotal) AND ($data_frete->gratis_acima_de > 0) ){

									if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

									$lista[$i]['id'] = $data_frete->id;
									$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
									$lista[$i]['selected'] = $selected;
									$lista[$i]['valor_frete'] = 0;
									$lista[$i]['valor_frete_tratado'] = $valores->trata_valor(0);
									$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
									$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

									$i++;


								} else {

									if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

									//calculos basicos de acrescimo
									$percentual = $data_frete->acrescimo_porc / 100.0;
									$valor_frete_acresimo = $valores->trata_valor_calculo( $percentual * $valor_subtotal );
									$valor_frete_linha_retorno = $data_frete->acrescimo_fixo + $valor_frete_acresimo;

									$lista[$i]['id'] = $data_frete->id;
									$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
									$lista[$i]['selected'] = $selected;
									$lista[$i]['valor_frete'] = $valor_frete_linha_retorno;
									$lista[$i]['valor_frete_tratado'] = $valores->trata_valor($valor_frete_linha_retorno);
									$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
									$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

									$i++;

								}
							}

							break;



							////////////////////////////////////
							// transportadora  bauer

							case '6':

							// somente se não for pato branco 
							if($cep_cidade != 'Pato Branco'){

								$conexao = new mysql();
								$coisas_bauer_cidades = $conexao->Executar("SELECT * FROM bauer_cidades WHERE uf='$cep_estado' AND cidade='$cep_cidade' ");
								// verifica se atende a cidade 
								if($coisas_bauer_cidades->num_rows != 0){

 									// confere valor
									if( ($data_frete->gratis_acima_de <= $valor_subtotal) AND ($data_frete->gratis_acima_de > 0) ){
 									// frete gratis acima de valor

										if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

										$lista[$i]['id'] = $data_frete->id;
										$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
										$lista[$i]['selected'] = $selected;
										$lista[$i]['valor_frete'] = 0;
										$lista[$i]['valor_frete_tratado'] = $valores->trata_valor(0);
										$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
										$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

										$i++;

									} else {

										// calculo
										$data_bauer_cidades = $coisas_bauer_cidades->fetch_object();

										// verifica valor base
										if($data_bauer_cidades->regiao){

											$conexao = new mysql();
											$coisas_bauer_valor = $conexao->Executar("SELECT * FROM bauer_precos WHERE destino_reg='$data_bauer_cidades->regiao' ");

											if($coisas_bauer_cidades->num_rows != 0){

												$data_bauer_valor = $coisas_bauer_valor->fetch_object();

												////////////////////
												// confere os 3 calculos e valida o valor maior

												// opção 1 porcentagem em cima do pedido
												$percentual = $data_bauer_valor->porcentagem / 100.0;
												$valor_frete_base = $valores->trata_valor_calculo( $percentual * $valor_subtotal );

												// opção 2 confere valor minimo
												if($valor_frete_base < $data_bauer_valor->frete_minimo){
													$valor_frete_base = $data_bauer_valor->frete_minimo;
												}

												// opção 3 calculo por peso
												$calculo_porpeso = $peso_total * $data_bauer_valor->porpeso;
												if($valor_frete_base < $calculo_porpeso){
													$valor_frete_base = $calculo_porpeso;
												}

												////////////////
												// verifica se existe area de risco ou dificuldade de acesso
												$frete_risco = 0;
												if($data_bauer_cidades->dificuldade == 1){
												// porcentagem em cima do pedido
													$frete_risco = 15;
												}

												////////////////
												// pedagio
												$frete_pedagio = 3;

												////////////////
												// imposto somente fora do parana
												if($cep_estado != 'PR'){

													$percentual = 12 / 100.0;
													$frete_imposto = $valores->trata_valor_calculo( $percentual * ($valor_frete_base + $frete_pedagio + $frete_risco) );

												} else {
													$frete_imposto = $frete_pedagio; + $frete_risco;
												}

												////////////////
												// calcula tudo
												$valor_frete_base = $valor_frete_base + $frete_imposto;


												//////////////////////////////////////
												// configurações do painel

												//calculos basicos de acrescimo
												$percentual = $data_frete->acrescimo_porc / 100.0;
												$valor_frete_acresimo = $valores->trata_valor_calculo( $percentual * $valor_subtotal );
												$valor_frete_linha_retorno = $data_frete->acrescimo_fixo + $valor_frete_acresimo;

												//////////////////////////////////////
												// junta calculo do painel com calculo do frete
												$valor_frete_linha_retorno = $valor_frete_linha_retorno + $valor_frete_base;

												//////////////////////////////////////
												// seleciona
												if($data_frete->id == $selecionado){ $selected = true; } else { $selected = false; }

												$lista[$i]['id'] = $data_frete->id;
												$lista[$i]['titulo'] = $data_frete->titulo_exibicao;
												$lista[$i]['selected'] = $selected;
												$lista[$i]['valor_frete'] = $valor_frete_linha_retorno;
												$lista[$i]['valor_frete_tratado'] = $valores->trata_valor($valor_frete_linha_retorno);
												$lista[$i]['gratis_acima_de'] = $data_frete->gratis_acima_de;
												$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor($data_frete->gratis_acima_de);

												$i++;
											}
										}
									}
								}
							}

							break;


						} // termina swith

					} // while

				}

			} else {

				// caso não tenha itens para cobrança de frete fica gratuito

				if($selecionado == 99999){ $selected = true; } else { $selected = false; }

				$lista[0]['id'] = 99999;
				$lista[0]['titulo'] = 'Frete Gratis';
				$lista[0]['selected'] = $selected;
				$lista[0]['valor_frete'] = 0;
				$lista[0]['valor_frete_tratado'] = '0,00';
				$lista[$i]['gratis_acima_de'] = 0;
				$lista[$i]['gratis_acima_de_tratado'] = $valores->trata_valor(0);

			}

		}

		return $lista;
	}


	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	//


	public function carrega($codigo){

		$db = new mysql();
		$exec = $db->executar("SELECT * FROM frete WHERE id='$codigo' ");
		$linhas = $exec->num_rows;

		if($linhas != 0){			
			return $exec->fetch_object();
		} else {
			return false;
		}		
	}


	public function carrega_balcao($codigo){

		$db = new mysql();
		$exec = $db->executar("SELECT * FROM balcoes WHERE codigo='$codigo' ");
		$linhas = $exec->num_rows;

		if($linhas != 0){			
			return $exec->fetch_object();
		} else {
			return false;
		}		
	}

	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	// calculo de frete direto do correio

	private function calcular_frete_correios($cep_origem,
		$cep_destino,
		$peso,
		$valor,
		$tipo_do_frete,
		$altura = 20,
		$largura = 20,
		$comprimento = 20){

		$url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?";
		$url .= "nCdEmpresa=";
		$url .= "&sDsSenha=";
		$url .= "&sCepOrigem=" . $cep_origem;
		$url .= "&sCepDestino=" . $cep_destino;
		$url .= "&nVlPeso=" . $peso;
		$url .= "&nVlLargura=" . $largura;
		$url .= "&nVlAltura=" . $altura;
		$url .= "&nCdFormato=1";
		$url .= "&nVlComprimento=" . $comprimento;
		$url .= "&sCdMaoProria=n";
		$url .= "&nVlValorDeclarado=" . $valor;
		$url .= "&sCdAvisoRecebimento=n";
		$url .= "&nCdServico=" . $tipo_do_frete;
		$url .= "&nVlDiametro=0";
		$url .= "&StrRetorno=xml";

	 	// tipo do frete
	    //Sedex: 40010
	    //Pac: 41106

		$xml = simplexml_load_file($url);

		return $xml->cServico; 
	}
 	// utilização
 	// $val = (calcular_frete('27410200','37500410',2,1000,'41106'));
 	// echo "Valor PAC: R$ ".$val->Valor;


	public function lista_balcoes(){

		$valores = new model_valores();
		
		$lista = array();
		$i = 0;

		$conexao = new mysql();
		$coisas = $conexao->Executar("SELECT * FROM balcoes order by titulo asc ");
		while($data = $coisas->fetch_object()){

			$lista[$i]['id'] = $data->id;
			$lista[$i]['codigo'] = $data->codigo;
			$lista[$i]['titulo'] = $data->titulo;
			$lista[$i]['valor'] = $data->valor;
			$lista[$i]['valor_tratado'] = $valores->trata_valor($data->valor);
			
			$i++;
		}
		
		return $lista;
	}

}