The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::TinyERP::NotaFiscalServicos - Nota Fiscal de Serviços Eletrônica (NFSe) via TinyERP

MÉTODOS

pesquisar( \%params )

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

    foreach my $nf (@{ $res->{notas_servico} }) {
        say $nf->{nota_servico}{numero};
        say $nf->{nota_servico}{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 de Serviços incluida no sistema do TinyERP (via incluir()).

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

    if ($res->{status} eq 'OK') {
        my $nf = $res->{nota_servico};
        say $nf->{data_emissao};
        say $nf->{cliente}{cep};
        say $nf->{servico}{descricao};
    }

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

consultar( $id )

Parecida com obter(), esse método consulta na prefeitura o andamento de uma Nota de Serviços com situação 4 (Lote não processado). Note que essa consulta é síncrona, então chamadas a essa API podem demorar e até mesmo gerar timeouts, caso o serviço da sua prefeitura esteja com problemas de comunicação com a Tiny.

    my $res = $tiny->nota_servicos->consultar( 354040217 );

    if ($res->{status} eq 'OK') {
        my $nf = $res->{nota_servico};
        say $nf->{id};
        say $nf->{situacao};
    }

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

emitir( $id )

emitir( \%params )

Envia a Nota de Serviços selecionada à SEFAZ associada, criando uma NFSe com valor fiscal.

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

    if ($res->{status} eq 'OK') {
        my $nf = $res->{nota_servico};
        say $nf->{situacao};
        say $nf->{link_impressao};
    }

Para mais informações sobre os parâmetros, consulte a documentação do 'emitir' na API. Note que a Tiny chama de "enviar", mas para mantermos consistência com a interface de NFe, mantemos o nome "emitir".

incluir( \%params )

Adiciona uma nova Nota de Serviços 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_servicos->incluir({
        data_emissao => '21/04/2019',
        cliente => {
            nome => 'Maria Silva',
            atualizar_cliente => 'N',
        },
        servico => {
            descricao => 'Assinatura do plano PRO',
            valor_servico => 29.95,
            codigo_lista_servico => '10.02.01',
        },
        descontar_iss_total => 'N',
    });

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

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

VEJA TAMBÉM

Net::TinyERP