NAME

Net::TinyERP::NotaFiscal - Nota Fiscal Eletrônica (NFe) via TinyERP

MÉTODOS

pesquisar( \%params )

my $res = $tiny->nota_fiscal->pesquisar({
    dataInicial => '13/02/2016',
    dataFinal   => '03/11/2016',
});

foreach my $nf (@{ $res->{notas_fiscais} }) {
    say $nf->{nota_fiscal}{descricao_situacao};
    say $nf->{nota_fiscal}{nome};
}

Para mais informações sobre os parâmetros, consulte a documentação do 'pesquisar' na API.

obter( $id )

Obtém dados sobre uma Nota Fiscal incluida no sistema do TinyERP (via incluir()).

my $res = $tiny->nota_fiscal->obter( 354040217 );

if ($res->{status} eq 'OK') {
    my $nf = $res->{nota_fiscal};
    say $nf->{base_icms};
    say $nf->{data_emissao}
    say $nf->{cliente}{cep};
    say $nf->{itens}[0]{item}{descricao};
}

Para mais informações sobre os parâmetros, consulte a documentação do 'obter' na API.

obter_xml( $id )

Não implementado. Sinta-se livre para nos mandar um Pull Request! :)

obter_link( $id )

Obtém link para DANFE em formato PDF de uma Nota Fiscal já emitida (via emitir()). Esse PDF deverá ser impresso e enviado em conjunto com a mercadoria.

 my $res = $tiny->nota_fiscal->obter_link( '354040217' );

 if ($res->{status} eq 'OK') {
     say $res->{link_nfe};
 }

Para mais informações sobre os parâmetros, consulte a documentação do 'obter link' na API.

emitir( $id )

emitir( \%params )

Envia a Nota Fiscal selecionada à SEFAZ associada, criando uma NFe com valor fiscal.

# equivalente a $tiny->nota_fiscal->emitir({ id => '354040217' });
my $res = $tiny->nota_fiscal->emitir( '354040217' );

if ($res->{status} eq 'OK') {
    my $nf = $res->{nota_fiscal};
    say $nf->{descricao_situacao};
    say $nf->{link_acesso};
}

Para mais informações sobre os parâmetros, consulte a documentação do 'emitir' na API.

incluir( \%params )

Adiciona uma nova Nota Fiscal ao sistema do Tiny. Note que, após a inclusão, você ainda precisa emitir() a nota para que ela tenha valor fiscal.

my $res = $api->nota_fiscal->incluir({
    tipo                    => 'S',
    natureza_operacao       => 'venda',
    data_emissao            => '13/01/2016',
    frete_por_conta         => 'R',
    valor_despesas          => 3.50,
    numero_pedido_ecommerce => '9876',

    cliente => {
        nome              => 'José da Silva',
        tipo_pessoa       => 'F',
        cpf_cnpj          => '11111111111',
        endereco          => 'Rua Exemplo',
        numero            => '34',
        complemento       => '503',
        bairro            => 'Bairro Exemplo',
        cep               => '12345678',
        cidade            => 'Cidade Exemplo',
        uf                => 'SP',
        pais              => 'BRASIL',
        atualizar_cliente => 'N',
    },

    itens => [
        { item => {
            codigo         => '1234',
            descricao      => 'Produto Legal',
            unidade        => 'UN',
            quantidade     => 1.00,
            valor_unitario => 9.99,
            tipo           => 'P',
            origem         => 0,
            ncm            => '1111',
        }},
        { item => {
            codigo         => '5678',
            descricao      => 'Outro Produto',
            unidade        => 'UN',
            quantidade     => 3.00,
            valor_unitario => 13.50,
            tipo           => 'P',
            origem         => 0,
            ncm            => '2222',
        }},
    ],
});

if ($res->{status} eq 'OK') {
    say $res->{registros}[0]{registro}{id};
    say $res->{registros}[0]{registro}{status};
}

Para mais informações sobre os parâmetros, consulte a documentação do 'incluir' na API.

VEJA TAMBÉM

Net::TinyERP