Ir para conteúdo
Fórum Script Brasil

criacao-sites

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que criacao-sites postou

  1. criacao-sites

    NFE com php

    Estou pesquisando também a NFe em PHP para implantar no virtuemart e gostaria de saber se basicamente eu preciso inserir as variaveis do VM no NFe ou haveria mais alguma instrução no BD (acrescentar tabelas) etc.?
  2. Consegui resolver, agora consigo calcular o valor do e-sedex no site para o virtuemart, agora estou adaptando para o magento e oscommerce. VLW.
  3. Kara eu to com um problema com o e-sedex para o virtuemart, eu li a documentação dos correios e eles dizem que tem que ter o codigo da empresa e a senha em caso de serviços que tenham contrato mesmo que sejam valor nulo. Então eu alterei o código de envio para o 81019 do e-sedex mas não tá funfando nem F####... ALGUÉM AI pode me dar um help? <?php defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); class correios_sedex { var $classname = "correios_sedex"; function list_rates( &$d ) { global $total, $tax_total, $CURRENCY_DISPLAY; $cart = $_SESSION['cart']; /** Read current Configuration ***/ // require_once(CLASSPATH ."shipping/".$this->classname.".cfg.php"); require(CLASSPATH ."shipping/".$this->classname.".cfg.php"); if ( $_SESSION['auth']['show_price_including_tax'] != 1 ) { $taxrate = 1; $order_total = $total + $tax_total; }else{ $taxrate = $this->get_tax_rate() + 1; $order_total = $total; } //Create DB User Object for Current User $dbu = new ps_DB; $q = "SELECT country,zip FROM #__{vm}_user_info WHERE user_info_id = '". $d["ship_to_info_id"] . "'"; $dbu->query($q); if (!$dbu->next_record()) { /*$vmLogger->err( $VM_LANG->_PHPSHOP_CHECKOUT_ERR_SHIPTO_NOT_FOUND ); return False;*/ } //Create DB Vendor Object for Shop Vendor $dbv = new ps_DB; $q = "SELECT * from #__{vm}_vendor, #__{vm}_country WHERE vendor_id='" . $_SESSION["ps_vendor_id"] . "' AND (vendor_country=country_2_code OR vendor_country=country_3_code)"; $dbv->query($q); $dbv->next_record(); // Monta as variáveis para Consulta Correios - SEDEX Normal // Monta uma lista de símbolos a serem removidos do número do CEP $replacements = array(" ", ".", ",", "-", ";"); //Pega o CEP de Origem e remove símbolos indesejados(ex. 96840150) $Order_Pickup_Postcode = $dbv->f("vendor_zip"); $Order_Pickup_Postcode = str_replace($replacements, "", $Order_Pickup_Postcode); // Verifica se o CEP da Loja é válido if(strlen($Order_Pickup_Postcode)<8 || strlen($Order_Pickup_Postcode)>8){ echo "SEDEX Normal erro: CEP da loja é inválido - CEP deve ter 8 dígitos numéricos"; return false; } // Pega o CEP de Destino e remove símbolos indesejados (ex. 96840150) $Order_Destination_Postcode = $dbu->f("zip"); $Order_Destination_Postcode = str_replace($replacements, "", $Order_Destination_Postcode); // Verifica se o CEP de Destino é válido if(strlen($Order_Destination_Postcode)<8 || strlen($Order_Destination_Postcode)>8){ echo "SEDEX Normal erro: CEP do destinatário é inválido - CEP deve ter 8 dígitos numéricos"; return false; } //Pega o peso dos produtos (Kg) $Order_WeightKG = $d['weight'] ; // Verifica se o peso está dentro dos limites if($Order_WeightKG > 30){ echo "SEDEX Normal erro: o peso de " . $Order_WeightKG . " Kg excede o peso máximo (30 Kg)."; return false; }elseif($Order_WeightKG == 0){ echo "SEDEX Normal: o peso de " . $Order_WeightKG . " Kg sugere produto(s) para DownLoad."; return false; } //Fee for packaging and handling, added to the delivery costs returned by auspost $Order_Handling_Fee = Handling_Fee; //Aviso de Recebimento dos Correios $Order_MaoPropria = MaoPropria; //Aviso de Recebimento dos Correios $Order_Aviso = AvisoReceb; //Ponto de obtenção do valor do frete $pto = Ponto; // ============= Início Obtém o valor do frete do site dos Correios ============= // Monta URL para pegar os dados do site dos Correios //$url_busca = 'http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=paginaCorreios&servico=40010&cepOrigem='.$Order_Pickup_Postcode.'&cepDestino='.$Order_Destination_Postcode.'&peso='.$Order_WeightKG.'&MaoPropria='.$Order_MaoPropria.'&valorDeclarado='. $order_total .'&avisoRecebimento='.$Order_Aviso; $url_busca = 'http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=paginaCorreios&nCdEmpresa=&sDsSenha=&servico=81019&cepOrigem='.$Order_Pickup_Postcode.'&cepDestino='.$Order_Destination_Postcode.'&peso='.$Order_WeightKG.'&MaoPropria='.$Order_MaoPropria.'&valorDeclarado='. $order_total .'&avisoRecebimento='.$Order_Aviso; // Verifica se está habilitada a função allow_url_fopen if(ini_get('allow_url_fopen') == '1') { // Usa file_get_contents() $conteudo = @file_get_contents($url_busca); // Se ocorreu um erro if($conteudo === false){ echo "SEDEX Normal: Sistema Indisponível"; return false; } // Senão verifica CURL para a consulta } else { // ======= Verifica se a biblioteca CURL está instalada no servidor ======= if (function_exists('curl_init')) { // Inicializa o novo recurso CURL $ch = curl_init(); // Seta a URL para buscar curl_setopt($ch, CURLOPT_URL, $url_busca); // Não quero os cabeçalhos apenas o conteúdo curl_setopt($ch, CURLOPT_HEADER, 0); // Retorna o valor ao invés de imprimir o resultado no navegador curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Usar um agente do usuário imitar um browser curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); // Executa a operação e pega o conteúdo da página de retorno $conteudo = curl_exec($ch); // Pega erros da biblioteca CURL e processa $curl_erro = curl_errno($ch); if(curl_errno($ch) != 0){ echo "SEDEX Normal erro CURL:". curl_error($ch); return false; } // Sempre fecha a sessão para liberar todos os recursos curl_close($ch); // ======= Se a biblioteca CURL não está instalada no servidor ======= } else { // Sem CURL e sem allow_url_fopen echo "SEDEX Normal erro: Sem \"CURL lib\" e sem \"allow_url_fopen\""; return false; } } // Seleciona dados relevantes e coloca em uma matriz preg_match_all("#<b>(.*?)<\/b>#s", $conteudo, $myfile); // Obtém valor no ponto correto da matriz e formata $valor = $myfile[1][$pto]; $APcharge = floatval(str_replace("," , ".", substr($valor,3))); // Verifica se o valor retornado é maior que 0,00 if($APcharge == "0.00"){ echo "SEDEX Normal erro: valor não disponível"; return false; } // ============= Final Obtém o valor do frete do site dos Correios ============= $Total_Shipping_Handling = $APcharge + $Order_Handling_Fee; $_SESSION[$shipping_rate_id] = "1"; // THE ORDER OF THOSE VALUES IS IMPORTANT: // ShippingClassName|carrier_name|rate_name|totalshippingcosts|rate_id $shipping_rate_id = urlencode( $this->classname."|Correios_Brasil|SEDEX_Normal|".$Total_Shipping_Handling); $html = "\n<input type=\"radio\" name=\"shipping_rate_id\" id=\"correios_sedex\" checked=\"checked\" value=\"$shipping_rate_id\" />\n"; $html .= "<label for=\"correios_sedex_shipping_rate\">"; $html .= "Correios - SEDEX Normal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "; $html .= "<strong>".$CURRENCY_DISPLAY->getFullValue($Total_Shipping_Handling)."</strong> (".$Order_WeightKG." Kg)"; $html .= "</label>"; $_SESSION[$shipping_rate_id] = "1"; echo $html; return true; // Fim da função list_rates } function get_rate( &$d ) { $shipping_rate_id = $d["shipping_rate_id"]; $is_arr = explode("|", urldecode(urldecode($shipping_rate_id)) ); $order_shipping = $is_arr[3]; return $order_shipping; } function get_tax_rate() { /** Read current Configuration ***/ require_once(CLASSPATH ."shipping/".$this->classname.".cfg.php"); if( intval(SEDEX_TAX_CLASS)== 0 ) return( 0 ); else { require_once( CLASSPATH. "ps_tax.php" ); $tax_rate = ps_tax::get_taxrate_by_id( intval(SEDEX_TAX_CLASS) ); return $tax_rate; } } /* Validate this Shipping method by checking if the SESSION contains the key * @returns boolean False when the Shipping method is not in the SESSION */ function validate( $d ) { $shipping_rate_id = $d["shipping_rate_id"]; if( array_key_exists( $shipping_rate_id, $_SESSION )) { return true; }else{ return false; } } /** * Show all configuration parameters for this Shipping method * @returns boolean False when the Shipping method has no configration */ function show_configuration() { global $VM_LANG; /** Read current Configuration ***/ require_once(CLASSPATH ."shipping/".$this->classname.".cfg.php"); ?> <table> <tr> <?php //Mostra o logo dos correios se este estiver disponível no site dos correios $logo_correios = "http://www.correios.com.br/encomendas/servicos/Sedex/Imagens/lg_sedex.gif"; //Caminho para o logo dos Correios if (@fopen($logo_correios, "r")) { echo "<td><img src=$logo_correios alt=\"SEDEX\"></td>"; } ?> </tr> <tr> <td><strong>Ponto de obtenção do valor do frete:</strong> </td> <td> <input type="text" name="Ponto" class="inputbox" value="<?php echo Ponto ?>" /> </td> <td> <?php echo mm_ToolTip("Este é o ponto da página dos correios onde é obtido o valor do frete.") ?> </td> </tr> <tr> <td><strong>Taxa de empacotamento e manuseio:</strong> </td> <td> <input type="text" name="Handling_Fee" class="inputbox" value="<?php echo Handling_Fee ?>" /> </td> <td> <?php echo mm_ToolTip("Esta é sua taxa de empacotamento e manuseio, e será acrescida aos custos de envio retornados pelos Correios") ?> </td> </tr> <tr> <td><strong><?php echo $VM_LANG->_PHPSHOP_UPS_TAX_CLASS ?></strong></td> <td> <?php require_once(CLASSPATH.'ps_tax.php'); ps_tax::list_tax_value("SEDEX_TAX_CLASS", SEDEX_TAX_CLASS) ?> </td> <td><?php echo mm_ToolTip($VM_LANG->_PHPSHOP_UPS_TAX_CLASS_TOOLTIP) ?><td> </tr> <tr> <td><strong>Mão Própria:</strong></td> <td> <select class="inputbox" name="MaoPropria"> <option value="n" <?php if(MaoPropria == "n") echo "selected=\"selected\""; ?> >Não</option> <option value="s" <?php if(MaoPropria == "s") echo "selected=\"selected\""; ?> >Sim</option> </select> </td> <td><?php echo mm_ToolTip("Você define se usará ou não o serviço Mão Própria dos Correios") ?><td> </tr> <tr> <td><strong>Aviso de Recebimento:</strong></td> <td> <select class="inputbox" name="AvisoReceb"> <option value="N" <?php if(AvisoReceb == "N") echo "selected=\"selected\""; ?> >Não</option> <option value="S" <?php if(AvisoReceb == "S") echo "selected=\"selected\""; ?> >Sim</option> </select> </td> <td><?php echo mm_ToolTip("Você define se usará ou não o serviço de Aviso de Recebimento dos Correios") ?><td> </tr> <tr> <td colspan="3">&nbsp; </td> </tr> <tr> <td colspan="3"> <!--Begin PagSeguro Logo --> <center> <strong>Ajude a manter este projeto</strong><br><br> <a href="https://pagseguro.uol.com.br/security/webpagamentos/webdoacao.aspx?email_cobranca=fsoares@fsoares.com.br&moeda=BRL" style="text-decoration: none;"><img src="https://pagseguro.uol.com.br/Security/Imagens/FacaSuaDoacao.gif" align="middle" alt="Doe com PagSeguro - é rápido e seguro!" border="0" /></a> </center> <!-- End PagSeguro Logo --> </td> </tr> </table> <?php // return false if there's no configuration return true; } /** * Returns the "is_writeable" status of the configuration file * @param void * @returns boolean True when the configuration file is writeable, false when not */ function configfile_writeable() { return is_writeable( CLASSPATH."shipping/".$this->classname.".cfg.php" ); } /** * Writes the configuration file for this shipping method * @param array An array of objects * @returns boolean True when writing was successful */ function write_configuration( &$d ) { global $vmLogger; $my_config_array = array("Handling_Fee" => $d['Handling_Fee'], "SEDEX_TAX_CLASS" => $d['SEDEX_TAX_CLASS'], "MaoPropria" => $d['MaoPropria'], "AvisoReceb" => $d['AvisoReceb'], "Ponto" => $d['Ponto'] ); $config = "<?php\n"; $config .= "defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); \n\n"; foreach( $my_config_array as $key => $value ) { $config .= "define ('$key', '$value');\n"; } $config .= "?>"; if ($fp = fopen(CLASSPATH ."shipping/".$this->classname.".cfg.php", "w")) { fputs($fp, $config, strlen($config)); fclose ($fp); return true; } else { $vmLogger->err( "Error writing to configuration file" ); return false; } } } ?> [/codebox] Abaixo to postando o código.
×
×
  • Criar Novo...