Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wtomtom

dúvida parcelamento Opencart

Recommended Posts

Boa noite, estou com um problema, estou finalizando uma loja no opencart e estou criando um sistema de parcelamento para exibir na loja já fiz o script mas gostaria de fazer ele listar todas as parcelas ex: 1 = 100 reais 2 = 50 reais e etc, pois o script que conseguir fazer só mostra uma parcela a que eu colocar no sistema não consegui fazer ele listar todas. segui o código:

            <div>
              <?php
                $maximo_parcelas = 10;
                $parcela_minima = 2;
                $parcelas_sem_juros = 10;
                $juros = 1.99;
                $tipo_de_calculo = 1;

                if (!$special) {
                  $preco_numero = str_replace(',','.',str_replace('.','', str_replace('R$',"",strip_tags($price))));
                } else {
                  $preco_numero = str_replace(',','.',str_replace('.','', str_replace('R$',"",strip_tags($special))));
                }

                // Inicia a primeira coluna
                echo '<div style="width: 100%; float:left;">';

                // Exibicao das parcelas
                for ($p = 10; $p <= $maximo_parcelas; $p++) {

                  // Se a parcela nao tiver juros
                  if ($p <= $parcelas_sem_juros) {
                    $valor_parcela = $preco_numero / $p;
                  }

                  // Se a parcela tiver juros
                  if ($p > $parcelas_sem_juros) {
                    if ($tipo_de_calculo == 0) {
                      $valor_parcela = ($preco_numero * pow(1+($juros/100), $p))/$p;
                    }
                    if ($tipo_de_calculo == 1) {
                      $valor_parcela = ($preco_numero * ($juros/100))/(1-(1/(pow(1+($juros/100), $p))));
                    }
                  }

                  // Escreve a parcela se ela for maior do que a parcela minima
                  if ($valor_parcela >= $parcela_minima) {
                    $valor_parcela = number_format($valor_parcela, 2, ',', '.');
                    if ($p <= $parcelas_sem_juros) {
                      echo 'ou em até ' . $p . 'x de ' . 'R$' . $valor_parcela . ' sem juros<br />';         
                    } else {
                      echo 'em até ' . $p . 'x de ' . 'R$' . $valor_parcela . '<br />';
                    }
                  }

                  // Fecha a primeira coluna e inicia a segunda
                  if ($p == intval($maximo_parcelas/2)+1) { echo '</div><div style="width: 100%; float:right;">'; }
                }

                // Exibe os juros utilizados e o valor minimo da parcela se esta for maior que zero
                if ($parcelas_sem_juros < $maximo_parcelas) {
                  $juros = number_format($juros, 2, ',', '.');

                }
                if ($parcela_minima > 0) {
                  $parcela_minima = number_format($parcela_minima, 2, ',', '.');
                  echo '';
                }

                // Fecha a segunda coluna
                echo '</div>';
              ?>
          </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Célido
      Boa tarde Galera!!!
       
      Em 2014 este código funcionava, inclusive eu que postei a resolução.
      Hoje (2021) não esta funcionando, estou enferrujado.
       
      A logica é simples, Cadastra-se a Transação principal (Lançamentos)
      Usuário Preenche os campos (Emissão, VlrEvento, QtdeParc)
      Após inserido no BD (test), voce clicar em um botão PARCELAR.
       
      Teoricamente, deveria atualizar a Tabela parcelas.
       
      Erros:
       Warning: mysqli_query() expects at least 2 parameters, 1 given 
        Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in 
       
      São duas Tabelas : 
      - lançamentos
            *Campos
              IdLan
             Emissao
             VlrEvento
             QtdeParc
       
      - parcelas
             *Campos
               IdLan
               Item 
               Vencto
               VlPar
        
      <?php
      $conn=mysqli_connect("localhost","root","","test");
      $idlan = $_REQUEST['IdLan'];
      $result = mysqli_query($conn,"SELECT * FROM lançamentos
      WHERE IdLan='$idlan'");
      //selecionando dados da tabela
      $idlan = $_REQUEST['IdLan'];
      $sql = "SELECT * FROM lançamentos where IdLan='$idlan'";
      $query = mysqli_query($sql);
      while($sql = mysqli_fetch_array($query)){
      $idfatu = $sql["IdLan"];
      $vtt = $sql["VlrEvento"];
      $nParcelas = $sql["QtdeParc"];
      }
      $vpp = $vtt/$nParcelas;
      $vencto = date("Y-m-d",strtotime("+".$x." month",mktime(0, 0, 0,$mes,$dia,$ano)));
      for($x = 1; $x <= $nParcelas; $x++){
      if(mysqli_query("INSERT INTO parcelas (IdLan,Item,Vencto,VlPar)
      VALUES ('".$idfatu."','".$x."','".$vencto."','".$vpp."')"))
      {
      } else {
      die("Erro ao inserir a parcela ".$x.": ".mysqli_error());
      }
      }
      ?>
       
      Desde já Obrigado pela Atenção e possível ajuda.
       
       
    • Por Ramael
      Olá, boa tarde.
       
      Tenho um site em OpenCart e tenho um módulo para avisos, mas esse módulo só me exibe o nome do produto e preciso que ele me mostre também o código. Consegui fazer uma adaptação para que ele me mostrasse somente o código, aí fica OU código OU nome, mas seria interessante que mostrasse os dois. Analisando todos os arquivos achei a função responsável por trazer do banco de dados o nome do produto, agora gostaria de acrescentar nessa mesma função, que ela trouxesse de outra tabela, o código. Como faço isso?
       
      Essa é a função original que traz o nome do produto:
      public function getAviseme() { $query = $this->db->query("SELECT DISTINCT p.product_id, pd.name AS product_name, COUNT(a.email) AS emails, a.aviseme_id, a.option FROM " . DB_PREFIX . "aviseme a INNER JOIN " . DB_PREFIX . "product p ON p.product_id = a.product_id LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE a.status = '1' AND pd.language_id = '".(int)$this->config->get('config_language_id')."' GROUP BY p.product_id"); return $query->rows; }  
       
      Essa é a modificação que fiz para exibir o código do produto:
       
      public function getAviseme() { $query = $this->db->query("SELECT DISTINCT p.product_id, pd.model AS product_model, COUNT(a.email) AS emails, a.aviseme_id, a.option FROM " . DB_PREFIX . "aviseme a INNER JOIN " . DB_PREFIX . "product p ON p.product_id = a.product_id LEFT JOIN " . DB_PREFIX . "product pd ON (p.product_id = pd.product_id) WHERE a.status = '1' GROUP BY p.product_id"); return $query->rows; } Agora quero juntar as duas coisas, pra que eu possa mostrar os dois valores. Aí no arquivo PHP eu colocaria mais um valor no Array e no TPL mais uma variável. Separado funciona.
       
      Desculpem a ignorância, acredito que não deva ser algo tão complicado, mas é que não conheço isso. Pra mim tudo é grego.
       
      Grato.
       
       
    • Por aidanb
      Olá estou buscando desenvolvedor PHP que seja capaz de criar e integrar um pequeno sistema ao opencart.
       
      Aqui vai uma breve descrição, maiores informações por favor enviar contato
       
      Funções e painel do representante:
      - Representante cadastra cliente pessoa física ou juridica.
      - Cliente fica vinculado ao representante por um determinado tempo (90 dias a patir da última compra)
      - Todas as compras deste cliente cadastrado pelo representante X serão somadas as vendas do mesmo
      - Primeiro pedido, representante que faz para o cliente
      - Relatório completo de vendas

      Caso o cliente vinculado ao representante não compre nada por um tempo maior ou igual a 90 dias:
      Cliente cai em uma listagem que todos os representantes possam vizualizar e fechar um novo pedido.

      Cadastro do cliente deve possuir último representante vinculado e representante atual vinculado.
       
      aidanwbruno@gmail.com
      (11) 970481365
    • Por Jiraya Tupiniquim
      Preciso de um programador experiente, pra integrar o HTML com o OPEN CART...
    • Por DarthEduu
      Pessoal, bom dia! Tenho uma loja em opencart, quando ativei a tradução BR ao cadastrar um preço no produto, ao salvar ele altera, por exemplo, ao colocar no preço R$ 3.55 ele vira R$ 3.62 ao salvar, e isso acontece no BR porque uma outra loja em inglês vai normal, alguém sabe como resolver isso?
       

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.