[nfephp] Função para gerar chave de acesso cte

997 views
Skip to first unread message

julio cesar

unread,
Aug 27, 2012, 9:53:43 AM8/27/12
to nfe...@googlegroups.com
Bom dia Pessoal,

Estou tendo dificuldade em gerar a chave de acesso da cte, será que alguém tem a uma função para disponibilizar.

Seria de grande ajuda.

Obrigado.

Edwin Schissato

unread,
Aug 27, 2012, 9:56:19 AM8/27/12
to nfe...@googlegroups.com
  function calcula_dv($chave43) {
        $multiplicadores = array(2, 3, 4, 5, 6, 7, 8, 9);
        $i = 42;
        while ($i >= 0) {
            for ($m = 0; $m < count($multiplicadores) && $i >= 0; $m++) {
                $soma_ponderada+= $chave43[$i] * $multiplicadores[$m];
                $i--;
            }
        }
        $resto = $soma_ponderada % 11;
        if ($resto == '0' || $resto == '1') {
            $cDV = 0;
        } else {
            $cDV = 11 - $resto;
        }
        $this->cDV = $cDV;
        return $cDV;
    }

    function calcula_chave_acesso($cUF, $AAMM, $CNPJ, $mod, $serie, $nCT, $tpEmis, $cCT) {


        /*
          · cUF - Código da UF do emitente do Documento Fiscal   2
          · AAMM - Ano e Mês de emissão do CT-e 4
          · CNPJ - CNPJ do emitente 14
          · mod - Modelo do Documento Fiscal 2
          · serie - Série do Documento Fiscal 3
          · nCT - Número do Documento Fiscal 9
          · tpEmis ? Forma de emissão do CT-e 1
          · cCT - Código Numérico que compõe a Chave de Acesso 8
          · cDV - Dígito Verificador da Chave de Acesso 1
         */
        // 02 - cUF  - código da UF do emitente do Documento Fiscal
        $chave = sprintf("%02d", $cUF);

        // 04 - AAMM - Ano e Mes de emissão da NF-e
        $chave.= sprintf("%04s", $AAMM);

        // 14 - CNPJ - CNPJ do emitente
        $chave.= sprintf("%014s", $CNPJ);

        // 02 - mod  - Modelo do Documento Fiscal
        $chave.= sprintf("%02d", $mod);

        // 03 - serie - Série do Documento Fiscal
        $chave.= sprintf("%03d", $serie);

        // 09 - nCT  - Número do Documento Fiscal
        $chave.= sprintf("%09d", $nCT);

        // 01 - tpEmis  - Tipo emissão 
        $chave.= sprintf("%01d", $tpEmis);

        // 08 - cCT  - Código Numérico que compõe a Chave de Acesso // diminui 1 digito na versão 2.0
        $chave.= sprintf("%08d", $cCT);

        // 01 - cDV  - Dígito Verificador da Chave de Acesso
        $chave.= $this->calcula_dv($chave);

        return $chave;
    }

2012/8/27 julio cesar <sys...@gmail.com>

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
FAQ: https://www.assembla.com/wiki/show/nfephp/FAQ
Como Participar: https://www.assembla.com/wiki/show/nfephp/Como_participar
Como Utilizar: http://www.assembla.com/wiki/show/nfephp/Como_utilizar
 
 
 

julio cesar

unread,
Aug 27, 2012, 10:02:16 AM8/27/12
to nfe...@googlegroups.com
Muito obrigado  Edwin
Reply all
Reply to author
Forward
0 new messages